Kontentga o‘tish

v1.14 dan v1.15 ga yangilash ​

Qiziqarli yangi xususiyatlar 🎉 ​

Yaxshilanishlar 🚀 ​

O‘zgarishlar 🛠 ​

v1.15.3 ​

v1.15.4 ​

Tegishli paketlarni yangilash: goravel/gin: v1.3.3, goravel/fiber: v1.3.3

v1.15.5 ​

Tegishli paketlarni yangilash: goravel/redis: v1.3.1, goravel/fiber: v1.3.4

v1.15.6 ​

v1.15.7 ​

v1.15.8 ​

Tegishli paketlarni yangilash: goravel/fiber: v1.3.6

v1.15.9 ​

v1.15.10 ​

v1.15.11 ​

v1.15.12 ​

Yangilash bo‘yicha ko‘rsatma ​

Taxminiy yangilash vaqti: 10 daqiqa

Golang v1.21 endi qo‘llab-quvvatlanmaydi sababli, Goravel ning qo‘llab-quvvatlaydigan Golang versiyasi 1.21 dan 1.22 ga yangilandi. Iltimos, go.mod faylidagi versiyani yangilang.

1. Bog‘liqliklarni yangilash ​

go get github.com/goravel/framework@v1.15.9

// Agar gin ishlatilsa
go get github.com/goravel/gin@v1.3.3

// Agar fiber ishlatilsa
go get github.com/goravel/fiber@v1.3.6

// Agar redis ishlatilsa
go get github.com/goravel/redis@v1.3.1

// Agar S3 ishlatilsa
go get github.com/goravel/s3@v1.3.2

// Agar Oss ishlatilsa
go get github.com/goravel/oss@v1.3.2

// Agar Cos ishlatilsa
go get github.com/goravel/cos@v1.3.2

// Agar Minio ishlatilsa
go get github.com/goravel/minio@v1.3.2

// Agar Cloudinary ishlatilsa
go get github.com/goravel/cloudinary@v1.3.1
go mod tidy

2. Agar Postgresql drayveridan foydalanayotgan bo‘lsangiz ​

Shunga muvofiq o‘zgartirish kerak: Postgresql drayverining nomi Postgresga o‘zgartirildi

3. Agar Orm.Transaction usulidan foydalanayotgan bo‘lsangiz ​

Shunga muvofiq o‘zgartirish kerak: Orm.Transaction usulining chaqiruv parametri turini o‘zgartirish

4. Agar Ormning Delete yoki ForceDelete usulidan foydalanayotgan bo‘lsangiz ​

Shunga muvofiq o‘zgartirish kerak: Ormning Delete va ForceDelete usullarini optimallashtirish

5. Agar Cachening Decrement va Increment usullaridan foydalanayotgan bo‘lsangiz ​

Shunga muvofiq o‘zgartirish kerak: Cachening Decrement va Increment usullarini optimallashtirish

6. Agar Navbat modulining Worker usulidan foydalanayotgan bo‘lsangiz ​

Shunga muvofiq o‘zgartirish kerak: Navbat modulining Worker usulini optimallashtirish

7. Agar Artisanni Call usulidan foydalanayotgan bo‘lsangiz ​

Shunga muvofiq o‘zgartirish kerak: Artisanni Call usulini optimallashtirish

8. Agar Testing.Database modulining Clear usulidan foydalanayotgan bo‘lsangiz ​

Shunga muvofiq o‘zgartirish kerak: Testing.Database modulining Clear usuli Shutdown deb nomlandi

9. Agar Testing.Database modulining Build usulidan foydalanayotgan bo‘lsangiz ​

Shunga muvofiq o‘zgartirish kerak: Testing.Database modulining Build usulini optimallashtirish

10. Agar Migratsiya modulidan foydalanayotgan bo‘lsangiz ​

config/database.go faylidagi konfiguratsiyani o‘zgartiring:

go
-- "migrations": "migrations",
++ "migrations": map[string]any{
++		"driver": "sql",
++		"table":  "migrations",
++ },

11. Agar Request.Input* usulidan foydalanayotgan bo‘lsangiz ​

Shunga muvofiq o‘zgartirish kerak: Request.Input* usulini optimallashtirish

12. Agar validation.PrepareForValidation usulidan foydalanayotgan bo‘lsangiz ​

Shunga muvofiq o‘zgartirish kerak: validation.PrepareForValidation usulini optimallashtirish

13. Agar Pochta modulidan foydalanayotgan bo‘lsangiz ​

Subjectni o‘rnatish usulini o‘zgartiring:

go
-- import "github.com/goravel/framework/contracts/mail"
++ import "github.com/goravel/framework/mail"

-- Content(mail.Content{Subject: "Subject", Html: "<h1>Hello Goravel</h1>"})
++ Content(mail.Html("<h1>Hello Goravel</h1>")).Subject("Subject")

Agar From usulidan foydalanayotgan bo‘lsangiz:

go
-- import "github.com/goravel/framework/contracts/mail"
++ import "github.com/goravel/framework/mail"

-- From(mail.From{Address: testFromAddress, Name: testFromName}
++ From(mail.Address(testFromAddress, testFromName)

Agar Queue usulidan foydalanayotgan bo‘lsangiz:

go
-- import "github.com/goravel/framework/contracts/mail"
++ import "github.com/goravel/framework/mail"

-- Queue(mail.Queue{Connection: "high", Queue: "mail"})
++ Queue(mail.Queue().Connection("high").Queue("mail"))

14. Agar validation.PrepareForValidation usulidan foydalanayotgan bo‘lsangiz ​

Shunga muvofiq o‘zgartirish kerak: validation.PrepareForValidation usulini optimallashtirish

Xususiyatlar kirishi ​

Migratsiya Go tilida migratsiyani qo‘llashni qo‘llab-quvvatlaydi ​

Ilgari freymvork faqat SQL migratsiyasini qo‘llab-quvvatlagan. Ma’lumotlar bazasini o‘zgartirmoqchi bo‘lganingizda, turli ma’lumotlar bazalari o‘rtasidagi SQL sintaksisi farqlari migratsiya jarayonini juda qiyinlashtirgan. Bundan tashqari, migratsiya fayllarida kodni bajarish mumkin emas edi, bu ma’lumotlarni tuzatishda mantiqiy qarorlar qabul qilishni imkonsiz qilgan.

Endi freymvork Go tilidan to‘g‘ridan-to‘g‘ri migratsiya fayllarini yaratishni qo‘llab-quvvatlaydi, bu ishlab chiquvchilarga murakkab migratsiya mantiqini yozishni osonlashtiradi. Biroq, joriy versiyada jadvallar maydonlarini o‘zgartirish amalga oshirilmagan, faqat jadval yaratish, jadvallarni o‘chirish va indeks yaratish kabi amallarni qo‘llab-quvvatlaydi. Agar o‘zgartirishlar kiritmoqchi bo‘lsangiz, SQL bayonotlarini to‘g‘ridan-to‘g‘ri bajarish uchun Sql usulidan foydalanishingiz kerak. Jadval maydonlarini o‘zgartirish imkoniyati kelajakdagi versiyalarda qo‘llab-quvvatlanadi.

V1.15 versiyasida freymvork Go tilida migratsiya (standart) va SQL migratsiyasini qo‘llab-quvvatlaydi, lekin SQL migratsiyasi v1.16 versiyasida olib tashlanadi.

SQL migratsiyasidan Go tilida migratsiyaga o‘tish ​

Agar SQL migratsiyasidan foydalanayotgan bo‘lsangiz, quyidagi qadamlarni bajarib Go tilida migratsiyaga o‘tishingiz mumkin:

  1. config/database.go faylidagi konfiguratsiyani o‘zgartiring;
go
-- "migrations": "migrations",
++ "migrations": map[string]any{
++		"driver": "default",
++		"table":  "migrations",
++ },
  1. go run . artisan make:migration {NAME} buyrug‘idan foydalanib migratsiya faylini yarating;

Asl SQL migratsiya faylidagi migratsiya va orqaga qaytarish bayonotlarini yaratilgan faylning Up va Down usullarida bajaring va jadval mavjudligini tekshirish uchun facades.Schema().HasTable usulidan foydalaning:

go
func (r *M20241207095921CreateUsersTable) Up() error {
  if !facades.Schema().HasTable("users") {
    return facades.Schema().Sql({SQL})
  }

  return nil
}
  1. Migratsiya faylini database/kernel.go faylida ro‘yxatdan o‘tkazing;

Yangi database/kernel.go faylini yarating va migratsiya fayllari va Seederslarni ro‘yxatdan o‘tkazing:

go
package database

import (
  "github.com/goravel/framework/contracts/database/schema"
  "github.com/goravel/framework/contracts/database/seeder"

  "goravel/database/migrations"
  "goravel/database/seeders"
)

type Kernel struct {
}

func (kernel Kernel) Migrations() []schema.Migration {
  return []schema.Migration{
    &migrations.M20241207095921CreateUsersTable{},
  }
}

func (kernel Kernel) Seeders() []seeder.Seeder {
  return []seeder.Seeder{
    &seeders.DatabaseSeeder{},
  }
}
  1. app/providers/database_service_provider.go faylini ro‘yxatdan o‘tkazishni yakunlash uchun o‘zgartiring va bu yerda dastlab ro‘yxatdan o‘tkazilgan Seederni database/kernel.go::Seedersga ko‘chiring;
go
-- func (receiver *DatabaseServiceProvider) Boot(app foundation.Application) {
-- 	facades.Seeder().Register([]seeder.Seeder{
-- 		&seeders.DatabaseSeeder{},
-- 	})
-- }
++ func (receiver *DatabaseServiceProvider) Boot(app foundation.Application) {
++ 	kernel := database.Kernel{}
++ 	facades.Schema().Register(kernel.Migrations())
++ 	facades.Seeder().Register(kernel.Seeders())
++ }
  1. Mavjud migrations jadvali ma’lumotlarini zaxiralang, so‘ngra migrations jadvalini o‘chiring;

  2. go run . artisan migrate buyrug‘ini migratsiyani amalga oshirish uchun bajaring, migratsiya tugagandan so‘ng yangi migrations jadvali yaratiladi.

Hujjatni ko‘rish

Testing HTTP testlashni qo‘llab-quvvatlaydi ​

goravel/framework: v1.15.0

Framework Testing.Http modulini qo‘shdi, u HTTP so‘rovlarini testlashni qo‘llab-quvvatlaydi, so‘rovlarni simulyatsiya qilish, javoblarni olish va javoblarni tekshirish imkonini beradi.

Hujjatni ko‘rish

HTTP oqim qaytarishni qo‘llab-quvvatlaydi ​

goravel/framework: v1.15.0

Hujjatni ko‘rish

HTTP taym-aut sozlashni qo‘llab-quvvatlaydi ​

goravel/framework: v1.15.0

config/http.go faylidagi http.request_timeout ni sozlab taym-aut vaqtini belgilashingiz mumkin, standart qiymati 3 soniya.

HTTP maxsus tiklash usulini sozlashni qo‘llab-quvvatlaydi ​

goravel/framework: v1.15.0

Hujjatni ko‘rish

So‘rov Filter sozlashni qo‘llab-quvvatlaydi ​

goravel/framework: v1.15.0

Hujjatni ko‘rish

So‘rov BindQuery usulini qo‘shadi ​

goravel/framework: v1.15.0

Parametrlarni to‘g‘ridan-to‘g‘ri havoladan bog‘lash uchun ctx.Request().BindQuery() dan foydalanish qo‘llab-quvvatlanadi.

Hujjatni ko‘rish

Validatsiya Regex qoidalarini qo‘llab-quvvatlaydi ​

goravel/framework: v1.15.0

go
validator, err := ctx.Request().Validate(map[string]string{
  "code": `required|regex:^\d{4,6}$`,
})

Jadval log chiqishini boshqarishni qo‘llab-quvvatlaydi ​

goravel/framework: v1.15.0

app.debug false bo‘lganda, faqat error darajadagi loglar chiqariladi.

Jadval Shutdown usulini qo‘shadi ​

goravel/framework: v1.15.0

Shutdown usuli Jadvalni muloyim ravishda to‘xtatish uchun ishlatilishi mumkin.

Hujjatni ko‘rish

Pochta Mailable shablonini qo‘llab-quvvatlaydi ​

goravel/framework: v1.15.0

Hujjatni ko‘rish

Xato log chiqishidagi iz sakrashni qo‘llab-quvvatlaydi ​

goravel/framework: v1.15.0

Xato log chiqishida, iz ustiga bosilganda, xato yuz bergan kod qatoriga sakraniladi.

Log Context ichidagi kalit-qiymat juftliklarini chop etishni qo‘llab-quvvatlaydi ​

goravel/framework: v1.15.0

go
ctx.WithValue("a", "b")
facades.Log().WithContext(ctx).Info("Hello Goravel")

// Chiqish:
[2024-12-15 16:36:58] local.info: Hello Goravel
Context: map[a:b]

Ma'lumotlar bazasiga ulanish uchun to‘g‘ridan-to‘g‘ri DSN sozlash qo‘llab-quvvatlanadi ​

goravel/framework: v1.15.0

Hujjatni ko‘rish

Orm ning Create usuli yaratish uchun map dan foydalanishni qo‘llab-quvvatlaydi ​

goravel/framework: v1.15.0

Hujjatni ko‘rish

Orm sozlov elementlarini qo‘shadi ​

goravel/framework: v1.15.0

Sozlamalar maxsus holatlar uchun bo‘lib, oddiy foydalanishda talab qilinmaydi, standart holda ular konfiguratsiya fayliga qo‘shilmaydi.

go
// config/database.go
"{driver_name}": map[string]any{
  "driver":   "{driver_name}",
  "host":     config.Env("DB_HOST", "127.0.0.1"),
  ...
++ "schema": "goravel",// Ulanish uchun standart sxemani o‘rnating, faqat Postgres va Sqlserver uchun
++ "no_lower_case": false,// Jadval nomini kichik harflarga o‘tkazishni sozlang
++ "name_replacer": strings.NewReplacer("id", "ID"),// Ustunlar nomini almashtirishni sozlang
},

Orm Restore usulini qo‘shadi ​

goravel/framework: v1.15.0

Orm moduliga Restore usuli qo‘shildi, u yumshoq o‘chirilgan ma'lumotlarni tiklash uchun ishlatilishi mumkin va Restored, Restoring hodisalarini qo‘shadi.

Hujjatni ko‘rish

Orm ning Log moduli Log moduliga integratsiya qilindi ​

goravel/framework: v1.15.0

Ilgari, Orm ning log chiqishi to‘g‘ridan-to‘g‘ri konsolga chiqarilgan, endi Orm ning log chiqishi Log moduliga integratsiya qilinadi va bir vaqtning o‘zida konsolga va log fayliga chop etilishi mumkin.

Postgres va Sqlserver drayverlari Schemani qo‘llab-quvvatlaydi ​

goravel/framework: v1.15.0

Hujjatni ko‘rish

About buyrug‘ini qo‘shing ​

goravel/framework: v1.15.0

about buyrug‘i qo‘shildi, u framework versiyasi, konfiguratsiyasi va boshqalarni ko‘rish uchun ishlatilishi mumkin.

bash
go run . artisan about

Db:show buyrug‘ini qo‘shing ​

goravel/framework: v1.15.0

db:show buyrug‘i qo‘shildi, u ma'lumotlar bazasi ulanish ma'lumotlarini ko‘rish uchun ishlatilishi mumkin.

bash
go run . artisan db:show

Db:table buyrug‘ini qo‘shing ​

goravel/framework: v1.15.0

db:table buyrug‘i qo‘shildi, u jadval tuzilishini ko‘rish uchun ishlatilishi mumkin.

bash
go run . artisan db:table
go run . artisan db:table users

Artisan chiqish uslubini optimallashtiring ​

goravel/framework: v1.15.0

Artisan chiqish uslubi optimallashtirildi, rang qo‘shildi, chiqish ko‘proq chiroyli bo‘ldi.

Auth Id usulini qo‘shadi ​

goravel/framework: v1.15.0

go
id, err := facades.Auth(ctx).ID()

Bir nechta Auth.Guard o‘z TTL ni sozlashi mumkin ​

goravel/framework: v1.15.0

Ilgari, bir nechta Guard jwt.ttl konfiguratsiyasini baham ko‘rardi. Endi siz har bir Guard uchun TTL ni config/auth.go faylida sozlab alohida belgilashingiz mumkin. Agar sozlanmagan bo‘lsa, standart holda jwt.ttl konfiguratsiyasi ishlatiladi.

go
// config/auth.go
"guards": map[string]any{
  "user": map[string]any{
    "driver": "jwt",
++  "ttl": 60,
  },
},

Postgresql drayveri nomi Postgres ga o‘zgartirildi ​

goravel/framework: v1.15.0

Postgresql drayveri nomi postgres ga o‘zgartirildi. Agar siz Postgresql drayveridan foydalanayotgan bo‘lsangiz, konfiguratsiya faylini o‘zgartirishingiz kerak:

go
// config/database.go
"postgres": map[string]any{
  -- "driver":   "postgresql",
  ++ "driver":   "postgres",
  "host":     config.Env("DB_HOST", "127.0.0.1"),
}

Orm.Transaction usuli chaqiruv parametri turini o‘zgartiring ​

goravel/framework: v1.15.0

facades.Orm().Transaction() usuli chaqiruv parametri turi func(tx orm.Transaction) error dan func(tx orm.Query) error ga o‘zgartirildi, agar siz ushbu usuldan foydalanayotgan bo‘lsangiz, iltimos, shunga mos ravishda o‘zgartiring.

go
-- facades.Orm().Transaction(func(tx orm.Transaction) error {
++ facades.Orm().Transaction(func(tx orm.Query) error {
  var user models.User

  return tx.Find(&user, user.ID)
})

Orm ning Delete va ForceDelete usullarini optimallashtiring ​

goravel/framework: v1.15.0

Agar siz ma'lumotlarni o‘chirish uchun Delete yoki ForceDelete usuliga ID uzatayotgan bo‘lsangiz, buning o‘rniga Where usulidan foydalaning:

go
-- facades.Orm().Query().Delete(&models.User{}, 10)
++ facades.Orm().Query().Where("id", 10).Delete(&models.User{})

-- facades.Orm().Query().Delete(&models.User{}, []uint{1, 2, 3})
++ facades.Orm().Query().WhereIn("id", []uint{1, 2, 3}).Delete(&models.User{})

-- facades.Orm().Query().ForceDelete(&models.User{}, 10)
++ facades.Orm().Query().ForceDelete("id", 10).Delete(&models.User{})

Delete va ForceDelete metodlari parametrlarni o‘tkazmasdan ma'lumotlarni o‘chirishni qo‘llab-quvvatlaydi:

go
res, err := facades.Orm().Query().Model(&models.User{}).Where("id", 1).Delete()
res, err := facades.Orm().Query().Table("users").Where("id", 1).Delete()

Cache modulining Decrement va Increment metodlarini optimallashtirish ​

goravel/framework: v1.15.0

Decrement va Increment metodlarining kirish va chiqish turlari int dan int64 ga o‘zgartirildi:

go
-- Decrement(key string, value ...int) (int, error)
++ Decrement(key string, value ...int64) (int64, error)

-- Increment(key string, value ...int) (int, error)
++ Increment(key string, value ...int64) (int64, error)

Artisan modulining Call metodini optimallashtirish ​

goravel/framework: v1.15.0

facades.Artisan().Call() metodi bajarish paytida xatolikka uchrasa, panic qiladi. Endi u xatoni qaytaradi, shuning uchun ushbu metoddan foydalanayotgan bo‘lsangiz, xatoni boshqaring.

go
err := facades.Artisan().Call("command:name")

Testing.Database modulining Clear metodini Shutdown deb nomlash ​

goravel/framework: v1.15.0

Metod nomini boshqa modullar bilan izchil saqlash uchun Clear metodini Shutdown deb nomladik.

go
database, err := facades.Testing().Docker().Database()
-- err := database.Clear()
++ err := database.Shutdown()

Testing.Database modulining Build metodini optimallashtirish ​

goravel/framework: v1.15.0

Ilgari Build metodini chaqirganda, ma'lumotlar bazasi migratsiyasi avtomatik ravishda bajarilar edi. Yangilashdan so‘ng, migratsiyani bajarish uchun Migrate metodini qo‘lda chaqirishingiz kerak bo‘ladi, bu ma'lumotlar bazasini boshqarishni yanada moslashuvchan qiladi.

go
database, err := facades.Testing().Docker().Database()
err := database.Build()
++ err := database.Migrate()

Request.Input* metodini optimallashtirish ​

goravel/framework: v1.15.0

goravel/gin: v1.3.0

goravel/fiber: v1.3.0

Ilgari Request.Input* metodi faqat Body dan ma'lumot olishi mumkin edi, endi u Body, Query va Param da ketma-ket ma'lumot qidiradi. Ilgari Request.Input* metodiga ikkinchi parametr (standart qiymat) o‘tkazilganda, agar key mavjud bo‘lsa lekin bo‘sh bo‘lsa, standart qiymat qaytarilar edi. Endi bo‘sh satr qaytariladi, chunki bo‘sh satr ham amaldagi qiymatdir, faqat key mavjud bo‘lmaganda standart qiymat qaytariladi.

Request.Input* metodining qo‘llaniladigan barcha joylarini tekshirishingiz kerak, o‘tkazilgan parametrlar to‘g‘ri va qaytish qiymatlari kutilganidek ekanligiga ishonch hosil qiling.

Validation.PrepareForValidation metodini optimallashtirish ​

goravel/framework: v1.15.0

Kirish parametri turini o‘zgartirish va http.Context parametrini qo‘shish:

go
import github.com/goravel/framework/validation

-- validator, err := facades.Validation().Make(input, rules, validation.PrepareForValidation(func(data validationcontract.Data) error {
++ validator, err := facades.Validation().Make(input, rules, validation.PrepareForValidation(func(ctx http.Context, data validationcontract.Data) error {
  if name, exist := data.Get("name"); exist {
	return data.Set("name", name)
  }

  return nil
}))

Queue modulining Worker metodini optimallashtirish ​

goravel/framework: v1.15.0

Worker metodi parametrlarni o‘rnatishni talab qilmasa, uni bo‘sh qoldirish mumkin:

go
-- facades.Queue().Worker(nil).Run()
++ facades.Queue().Worker().Run()

Parametrlarni o‘rnatish zarur bo‘lsa, parametrlar ko‘rsatkichlardan instansiyalarga o‘zgartirildi:

go
-- facades.Queue().Worker(&queue.Args{Connection: "redis").Run()
++ facades.Queue().Worker(queue.Args{Connection: "redis").Run()

Go Migration Boolean maydonini qo‘llab-quvvatlaydi ​

goravel/framework: v1.15.3

go
table.Boolean("is_admin")

Go Migration maxsus maydonni qo‘llab-quvvatlaydi ​

goravel/framework: v1.15.3

Agar siz freymvork hali qo‘llab-quvvatlamaydigan ustun turlaridan foydalanayotgan bo‘lsangiz, maydon turini sozlash uchun Column metodidan foydalanishingiz mumkin:

go
table.Column("geometriya", "geometriya")

Artisan log chiqish qoidalarini optimallashtirish ​

goravel/framework: v1.15.3

Ilgari Artisan log faqat xato darajali loglarni chiqarar edi, endi barcha darajadagi loglar chiqariladi. Agar konsol loglarni chop etishni o‘chirib qo‘ymoqchi bo‘lsangiz va single yoki daily log haydovchisidan foydalanayotgan bo‘lsangiz, logging.channels.single.print yoki logging.channels.daily.print konfiguratsiyasini false ga o‘rnating.

PrepareForValidation metodida ctx ning nil bo‘lish muammosini tuzatish ​

goravel/framework: v1.15.4

goravel/gin: v1.3.3

goravel/fiber: v1.3.3

Tuzatishdan oldin PrepareForValidation metodida ctx har doim nil edi, endi u parametr sifatida to‘g‘ri o‘tkaziladi. Agar validation.PrepareForValidation metodidan foydalanayotgan bo‘lsangiz, shunga mos ravishda o‘zgartiring.

go
import (
  github.com/goravel/framework/validation
  contarctsvalidate "github.com/goravel/framework/contracts/validation"
)

-- validation.PrepareForValidation(func(ctx http.Context, data contarctsvalidate.Data) error {
++ validation.PrepareForValidation(ctx, func(ctx http.Context, data contarctsvalidate.Data) error {

Fiber haydovchisida yuqori konkurentlik ostida Orm WithContext metodining xato xabar berish muammosini tuzatish ​

goravel/framework: v1.15.4

goravel/fiber: v1.3.3

Tafsilotlar uchun: #866

Paket hajmini optimallashtirish ​

goravel/framework: v1.15.4

Tafsilotlar uchun: #865

Model ID ning bir necha marta ichma-ich joylashishi muammosini optimallashtirish ​

goravel/framework: v1.15.4

Tafsilotlar uchun: #898

Artisan buyrug‘i taxallusini qo‘shish ​

goravel/framework: v1.15.4

// Ilgari
go run  . artisan key:generate

// Keyin
./artisan key:generate

Redis haydovchisida Throttle ning saqlashda muvaffaqiyatsiz bo‘lish muammosini tuzatish ​

goravel/framework: v1.15.5

goravel/redis: v1.3.1

Redis haydovchisidan foydalanganda, Throttle normal saqlay olmaydi, bu cheklovning ishlamasligiga olib keladi.

Muammo: #625

Fiber haydovchisida Fallback ning ishlamasligi muammosini tuzatish ​

goravel/framework: v1.15.5

goravel/fiber: v1.3.4

Fiber haydovchisidan foydalanganda, agar Fallback o‘rnatilgan bo‘lsa, boshqa marshrutlar ishlamay qoladi.

Muammo: #624

Konkurent bajarishda Orm WithContext metodining xato xabar berish muammosini tuzatish ​

goravel/framework: v1.15.6

WithContext metodidan foydalanib Context ni o‘rnatganda, konkurent bajarishda xato xabar berilardi.

Carbon ni yangilash ​

goravel/framework: v1.15.7

dromara/carbon v2.5.5 yoki undan keyingi versiyalar yangi funksiyalarni joriy qildi, bu ba‘zi freymvork funksiyalarining noto‘g‘ri ishlashiga olib keldi. Eslatma: dromara/carbon v2.6 yoki undan keyingi versiyalar hali qo‘llab-quvvatlanmaydi, Goravel v1.16 da qo‘llab-quvvatlanadi.

Facades.Testing().Docker().Database() ning xato xabar berish muammosini tuzatish ​

goravel/framework: v1.15.8

Muammo: #672

Fiber drayveridagi ctx.Request().Ip() metodining to'g'ri ishlamaslik muammosini tuzatish ​

goravel/fiber: v1.3.6

Avval, ctx.Request().Ip() metodi har doim 127.0.0.1 qiymatini qaytarardi. Tuzatishdan so'ng, proksi sarlavhasini va ishonchli proksi IP manzillarini o'rnatish uchun yangi http.drivers.fiber.proxy_header, http.drivers.fiber.enable_trusted_proxy_check va http.drivers.fiber.trusted_proxies konfiguratsiya elementlari qo'shildi.

Muammo: #678

Orm-dagi WhereBetween metodi satrlarni qo'llab-quvvatlamaydi ​

goravel/framework: v1.15.8

Muammo: #1036

Orm-dagi Cursor metodining ba'zi hollarda xotira oqizish muammosini tuzatish ​

goravel/framework: v1.15.9

rows olinganda, chan to'g'ri yopilmaydi, bu esa xotira oqizishiga olib keladi.

Schedule-da ikkinchi darajali vazifalardan foydalanganda OnOneServer ishlamaslik muammosini tuzatish ​

goravel/framework: v1.15.9

Muammo: #690

Yaratilgan migratsiya faylidagi standart Timestamps-ni TimestampsTz-ga o'zgartirish ​

goravel/framework: v1.15.9

Muammo: #699

Orm Query qayta ishlatilganda Where sharti aralashishi mumkin bo'lgan muammoni tuzatish ​

goravel/framework: v1.15.10

Muammo: #732

Xat yuborilganda bcc va cc-ni to'g'ri o'rnatib bo'lmasligini tuzatish ​

goravel/framework: v1.15.11

Muammo: #737

goravel/framework: v1.15.11

PR: #1148

Bir nechta yozuvlar yaratilganda orm yaratish hodisalari ishga tushirilishi mumkinligini tuzatish ​

goravel/framework: v1.15.11

Muammo: #738

Yopish ichida panic sodir bo'lganda Transaction orqaga qaytmasligini tuzatish ​

goravel/framework: v1.15.12

Muammo: #762

MIT litsenziyasi ostida chiqarilgan