v1.14 dan v1.15 ga yangilash
Qiziqarli yangi xususiyatlar 🎉
- Migratsiya Go tilidagi migratsiyadan foydalanishni qo‘llab-quvvatlaydi
- Testlash HTTP testlashni qo‘llab-quvvatlaydi
Yaxshilanishlar 🚀
- HTTP oqimni qaytarishni qo‘llab-quvvatlaydi
- HTTP vaqt chegarasini o‘rnatishni qo‘llab-quvvatlaydi
- HTTP maxsus tiklash usulini o‘rnatishni qo‘llab-quvvatlaydi
- So‘rov Filterni sozlashni qo‘llab-quvvatlaydi
- So‘rov BindQuery usulini qo‘shadi
- Tekshirish Regex qoidalarini qo‘llab-quvvatlaydi
- Jadval log chiqishini boshqarishni qo‘llab-quvvatlaydi
- Jadval Shutdown usulini qo‘shadi
- Pochta Mailable shablonni qo‘llab-quvvatlaydi
- Xato log chiqishidagi iz o‘tishni qo‘llab-quvvatlaydi
- Log Context ichidagi kalit-qiymat juftliklarini chop etishni qo‘llab-quvvatlaydi
- Ma’lumotlar bazasiga ulanish uchun DSN ni bevosita o‘rnatishni qo‘llab-quvvatlaydi
- Orm ning Create usuli map yordamida yaratishni qo‘llab-quvvatlaydi
- Orm sozlash elementlarini qo‘shadi
- Orm Restore usulini qo‘shadi
- Orm ning Log moduli Log moduli bilan birlashtirildi
- Postgres va Sqlserver drayverlari Schemani qo‘llab-quvvatlaydi
- about buyrug‘ini qo‘shish
- db:show buyrug‘ini qo‘shish
- db:table buyrug‘ini qo‘shish
- Artisan chiqish uslubini optimallashtirish
- Auth Id usulini qo‘shadi
- Bir nechta Auth.Guard o‘zining TTL ni o‘rnatishi mumkin
O‘zgarishlar 🛠
- Postgresql drayverining nomi Postgres ga o‘zgartirildi
- Orm.Transaction usulining qayta chaqiruv parametr turini o‘zgartirish
- Orm ning Delete va ForceDelete usullarini optimallashtirish
- Cache ning Decrement va Increment usullarini optimallashtirish
- Artisan ning Call usulini optimallashtirish
- Testing.Database ning Clear usuli Shutdown ga nomlandi
- Testing.Database ning Build usulini optimallashtirish
- Request.Input* usulini optimallashtirish
- validation.PrepareForValidation usulini optimallashtirish
- Queue modulining Worker usulini optimallashtirish
v1.15.3
- Go Migratsiya Boolean maydonini qo‘llab-quvvatlaydi
- Go Migratsiya maxsus maydonni qo‘llab-quvvatlaydi
- Artisan log chiqish qoidalarini optimallashtirish
v1.15.4
Tegishli paketlarni yangilash: goravel/gin: v1.3.3, goravel/fiber: v1.3.3
- PrepareForValidation da ctx ning nil bo‘lishi muammosini tuzatish
- Orm WithContext usuli Fiber drayverida yuqori konkurentlik ostida xatolik haqida xabar berishi muammosini tuzatish
- Paket hajmini optimallashtirish
- Model ID ning bir necha marta ichma-ich joylashishi muammosini optimallashtirish
- artisan buyrug‘i taxallusini qo‘shish
v1.15.5
Tegishli paketlarni yangilash: goravel/redis: v1.3.1, goravel/fiber: v1.3.4
- Throttle ning Redis drayverida saqlanib qolmasligi muammosini tuzatish
- Fallback ning Fiber drayverida ishlamasligi muammosini tuzatish
v1.15.6
v1.15.7
v1.15.8
Tegishli paketlarni yangilash: goravel/fiber: v1.3.6
- facades.Testing().Docker().Database() xatolik haqida xabar berishi muammosini tuzatish
- Fiber drayveridagi ctx.Request().Ip() usuli to‘g‘ri ishlamasligi muammosini tuzatish
- Orm dagi WhereBetween usuli satrlarni qo‘llab-quvvatlamaydi
v1.15.9
- Orm dagi Cursor usuli ba’zi hollarda xotira sizib chiqishi muammosini tuzatish
- Schedule da ikkinchi darajali vazifalardan foydalanganda OnOneServer ishlamasligi muammosini tuzatish
- Yaratilgan migratsiya faylidagi standart Timestamps ni TimestampsTz ga o‘zgartirish
v1.15.10
v1.15.11
- Xat yuborilganda bcc va cc-ni to'g'ri o'rnatib bo'lmasligini tuzatish
- Navbat orqali xat yuborilganda noto'g'ri xatoni qaytarishni tuzatish
- Bir nechta yozuvlar yaratilganda orm yaratish hodisalari ishga tushirilishi mumkinligini tuzatish
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.1go mod tidy2. 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:
-- "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:
-- 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:
-- 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:
-- 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:
config/database.gofaylidagi konfiguratsiyani o‘zgartiring;
-- "migrations": "migrations",
++ "migrations": map[string]any{
++ "driver": "default",
++ "table": "migrations",
++ },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:
func (r *M20241207095921CreateUsersTable) Up() error {
if !facades.Schema().HasTable("users") {
return facades.Schema().Sql({SQL})
}
return nil
}- Migratsiya faylini
database/kernel.gofaylida ro‘yxatdan o‘tkazing;
Yangi database/kernel.go faylini yarating va migratsiya fayllari va Seederslarni ro‘yxatdan o‘tkazing:
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{},
}
}app/providers/database_service_provider.gofaylini ro‘yxatdan o‘tkazishni yakunlash uchun o‘zgartiring va bu yerda dastlab ro‘yxatdan o‘tkazilganSeedernidatabase/kernel.go::Seedersga ko‘chiring;
-- 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())
++ }Mavjud
migrationsjadvali ma’lumotlarini zaxiralang, so‘ngramigrationsjadvalini o‘chiring;go run . artisan migratebuyrug‘ini migratsiyani amalga oshirish uchun bajaring, migratsiya tugagandan so‘ng yangimigrationsjadvali yaratiladi.
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.
HTTP oqim qaytarishni qo‘llab-quvvatlaydi
goravel/framework: v1.15.0
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
So‘rov Filter sozlashni qo‘llab-quvvatlaydi
goravel/framework: v1.15.0
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.
Validatsiya Regex qoidalarini qo‘llab-quvvatlaydi
goravel/framework: v1.15.0
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.
Pochta Mailable shablonini qo‘llab-quvvatlaydi
goravel/framework: v1.15.0
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
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
Orm ning Create usuli yaratish uchun map dan foydalanishni qo‘llab-quvvatlaydi
goravel/framework: v1.15.0
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.
// 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.
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
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.
go run . artisan aboutDb: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.
go run . artisan db:showDb:table buyrug‘ini qo‘shing
goravel/framework: v1.15.0
db:table buyrug‘i qo‘shildi, u jadval tuzilishini ko‘rish uchun ishlatilishi mumkin.
go run . artisan db:table
go run . artisan db:table usersArtisan 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
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.
// 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:
// 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.
-- 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:
-- 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:
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:
-- 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.
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.
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.
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:
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:
-- facades.Queue().Worker(nil).Run()
++ facades.Queue().Worker().Run()Parametrlarni o‘rnatish zarur bo‘lsa, parametrlar ko‘rsatkichlardan instansiyalarga o‘zgartirildi:
-- 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
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:
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.
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:generateRedis 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
Navbat orqali xat yuborilganda noto'g'ri xatoni qaytarishni tuzatish
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
