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