v1.13 dan v1.14 ga yangilash
Qiziqarli Yangi Imkoniyatlar 🎉
Takomillashtirishlar 🚀
- Gin va Fiber drayverlarida body_limit va header_limit ni sozlashni qoʻllab-quvvatlash
- Log yangi metodlar qoʻshadi
- Orm yangi metodlar qoʻshadi
- Console yangi metodlar qoʻshadi
- Response yangi metodlar qoʻshadi
- Build buyrugʻini qoʻshish
- Yordamchi metodlarni qoʻshish
- Redis drayveri TLS ni qoʻllab-quvvatlaydi
Muhim Oʻzgarishlar 🛠
- Tekshiruv muvaffaqiyatsiz boʻlsa, Validation maʼlumotlarni bogʻlamaydi
- Testing moduli uchun yangi metodlar qoʻshish va metodlarni oʻzgartirish
- Mail modulining Queue metodini optimallashtirish
- Auth moduli ctx ning sozlash metodini optimallashtirish
- Mock fasadlar usulini optimallashtirish
- Framework Orm modeli json tegnini qoʻshadi
v1.14.1
- Gin drayverida sessiya muvaffaqiyatli oʻrnatilmayotgan muammoni tuzatish
- Lokallashtirish modulida til faylini oʻqib boʻlmayotgan muammoni tuzatish
v1.14.2
- Rasm va fayl tekshiruvi muvaffaqiyatsiz boʻlgan Validation tekshiruvini tuzatish
- goravel/gin drayveri tomonidan oʻrnatilgan cookie Expires ning yaroqsiz boʻlgan muammosini tuzatish
v1.14.3
Tegishli paketlarni yangilash: goravel/gin: v1.2.2, goravel/fiber: v1.2.2
- Validation slice ni bogʻlay olmayotgan muammoni tuzatish
- Validation carbon ni bogʻlashni qoʻllab-quvvatlaydi
v1.14.4
Tegishli paketlarni yangilash: goravel/gin: v1.2.3
- Sessiya konkurent muammosini tuzatish
- Gin Sessiya same_site ni yaroqsiz oʻrnatayotgan muammoni tuzatish
v1.14.5
Tegishli paketlarni yangilash: goravel/gin: v1.2.4, goravel/fiber: v1.2.3
v1.14.7
Tegishli paketlarni yangilash: goravel/gin: v1.2.5, goravel/fiber: v1.2.4
v1.14.8
v1.14.9
- Maxsus Log drayveri console takroriy chop etish muammosini tuzatish
- HTTP JSON Soʻrovi koʻp darajali tuzilishni oʻz ichiga olganda maʼlumotlarni bogʻlash xatosi muammosini tuzatish
Yangilash Qoʻllanmasi
Goravel v1.14 Golang 1.21 asosida ishlab chiqilgan va sinovdan oʻtkazilgan boʻlib, odatda boshqa pastroq Golang versiyalari bilan mos keladi. Iltimos, ushbu boʻlimdagi mazmunga muvofiq freymvorkni bosqichma-bosqich yangilang.
Taxminiy Yangilash Vaqti: 10 Daqiqa
1. Bogʻliqliklarni Yangilash
go get -u github.com/goravel/framework@v1.14.7
// Agar gin ishlatilsa
go get -u github.com/goravel/gin@v1.2.5
// Agar fiber ishlatilsa
go get -u github.com/goravel/fiber@v1.2.4
// Agar redis ishlatilsa
go get -u github.com/goravel/redis@v1.2.1
// Agar s3 ishlatilsa
go get -u github.com/goravel/s3@v1.2.0
// Agar oss ishlatilsa
go get -u github.com/goravel/oss@v1.2.0
// Agar cos ishlatilsa
go get -u github.com/goravel/cos@v1.2.0
// Agar minio ishlatilsa
go get -u github.com/goravel/minio@v1.2.0
// Agar cloudinary ishlatilsa
go get -u github.com/goravel/cloudinary@v1.2.0
go mod tidy2. Konfiguratsiya Elementlarini Qoʻshish
config/app.goga lokallashtirish moduli konfiguratsiya elementlarini qoʻshing:
"locale": "en",
"fallback_locale": "en",
"providers": []foundation.ServiceProvider{
...
&session.ServiceProvider{},
&translation.ServiceProvider{},
...
}- Agar
sessionfunksiyasidan foydalanmoqchi boʻlsangiz, config/session.go faylini qoʻshing;
3) Agar Validation moduli ishlatilsa
Maʼlumotlar tekshiruvi muvaffaqiyatsiz boʻlsa ham, bogʻlangan qiymatni oʻqishga urinayotganingizni tasdiqlang. Agar shunday boʻlsa, mantiqni optimallashtirishingiz kerak, chunki yangilashdan keyin qiymat boʻsh boʻladi. Qarang: Tekshiruv muvaffaqiyatsiz boʻlsa, Validation maʼlumotlarni bogʻlamaydi.
4. Agar Testing moduli ishlatilsa
Clear, Image metodlaridan foydalanayotganingizni tekshiring, agar shunday boʻlsa, mos ravishda oʻzgartirishingiz kerak: Testing moduli uchun yangi metodlar qoʻshish va metodlarni oʻzgartirish
5. agar Mail moduli ishlatilsa
Queue metodidan foydalanayotganingizni tekshiring, agar shunday boʻlsa, mos ravishda oʻzgartirishingiz kerak: Mail modulining Queue metodini optimallashtirish
6. Agar Auth moduli ishlatilsa
Mos ravishda oʻzgartirishingiz kerak: Auth moduli ctx ning sozlash metodini optimallashtirish
7. Agar mock fasadlar ishlatilsa
Mos ravishda oʻzgartirishingiz kerak: Mock fasadlar usulini optimallashtirish
8. Agar framework Orm modeli ishlatilsa va maʼlumotlar toʻgʻridan-toʻgʻri endpoint orqali qaytarilsa
Mos ravishda oʻzgartirishingiz kerak: Framework Orm modeli json tegnini qoʻshadi
Imkoniyatlar Tavsifi
Mahalliylashtirish
Versiya: v1.14.0
O‘rnatuvchi
Versiya: v1.14.0
O‘rnatuvchi sizga yangi Goravel loyihasini oson yuklab olish va ishga tushirish imkonini beradi.
Cookie
Versiya: v1.14.0
Seans
Versiya: v1.14.0
Gin va Fiber haydovchilarida body_limit va header_limit ni o‘rnatish uchun qo‘llab-quvvatlash
Versiya: v1.14.0
HTTP haydovchilari body_limit ni o‘rnatish orqali tana hajmini cheklashni qo‘llab-quvvatlaydi, qarang: goravel/gin va goravel/fiber.
Log yangi usullarni qo‘shadi
Versiya: v1.14.0
| Usul | Tavsif |
|---|---|
Stack | Bir vaqtning o‘zida bir nechta kanallardan foydalanish |
Channel | Aniq bir kanalni belgilash |
WithTrace | Izni chop etish |
Orm yangi usullarni qo‘shadi
Versiya: v1.14.0
WhereIn, OrWhereIn, OrWhereNotIn, WhereNotIn, WhereBetween, WhereNotBetween, WhereNull, OrWhereNull, OrderByDesc, OrderBy, InRandomOrder, Exists usullarini qo‘shish.
Console yangi usullarni qo‘shadi
Versiya: v1.14.0
Response yangi usullarni qo‘shadi
Versiya: v1.14.0
Build buyrug‘ini qo‘shish
Versiya: v1.14.0
Goravel loyihasi quyidagi buyruq orqali kompilyatsiya qilinishi mumkin: go run . artisan build.
Yordamchi usullarni qo‘shish
Versiya: v1.14.0
Redis haydovchisi TLS ni qo‘llab-quvvatlaydi
Versiya: v1.14.0
Tekshiruv muvaffaqiyatsiz bo‘lsa, ma’lumotlarni bog‘lamaydi
Versiya: v1.14.0
Ilgari quyidagi usullarni chaqirganda, xatolik qaytarilgan bo‘lsa ham, userRequest qiymatni bog‘lab qo‘ygan edi. Yangilashdan so‘ng, u endi bog‘lamaydi.
var userRequest requests.UserRequest
errors, err := ctx.Request().ValidateRequest(&userRequest)
// yoki
validator, err := validation.Make(***)
err = validator.Bind(&userRequest)Testing moduli uchun yangi usullarni qo‘shish va usullarni o‘zgartirish
Versiya: v1.14.0
- Fresh usulini qo‘shish;
Clearusulini Stop usuliga o‘zgartirish;ImageusuliExposedPortso‘zgaruvchisini qo‘shadi vaTimeouto‘zgaruvchisini olib tashlaydi;
database, err := facades.Testing().Docker().Database()
database.Image(testingcontract.Image{
Repository: "mysql",
Tag: "5.7",
Env: []string{
"MYSQL_ROOT_PASSWORD=123123",
"MYSQL_DATABASE=goravel",
},
-- Timeout: 1000,
++ ExposedPorts: []string{"3306"},
})Mail modulining Queue usulini optimallashtirish
Versiya: v1.14.0
Queue usulining kirish parametri queue *mail.Queue dan queue ...mail.Queue ga o‘zgartirildi.
-- facades.Mail().Queue(nil)
++ facades.Mail().Queue()
-- facades.Mail().Queue(&mail.Queue{})
++ facades.Mail().Queue(mail.Queue{})Auth moduli ctx ning sozlash usulini optimallashtirish
Versiya: v1.14.0
Ilgari Parse, User, Login, LoginUsingID, Refresh, Logout usullarini chaqirganda, ctx ni uzatish kerak edi. Yangilashdan so‘ng, ctx ni uzatish shart emas, uni to‘g‘ridan-to‘g‘ri facades.Auth(ctx) da o‘rnatishingiz mumkin.
-- facades.Auth().Parse(ctx, token)
++ facades.Auth(ctx).Parse(token)
-- facades.Auth().User(ctx, &user)
++ facades.Auth(ctx).User(&user)
-- facades.Auth().Login(ctx, &user)
++ facades.Auth(ctx).Login(&user)
-- facades.Auth().LoginUsingID(ctx, id)
++ facades.Auth(ctx).LoginUsingID(id)
-- facades.Auth().Refresh(ctx)
++ facades.Auth(ctx).Refresh()
-- facades.Auth().Logout(ctx)
++ facades.Auth(ctx).Logout()Mock facades usulini optimallashtirish
Versiya: v1.14.0
import github.com/goravel/framework/testing/mock
++ mockFactory := mock.Factory()
-- app := mock.App()
++ app := mockFactory.App()
-- artisan := mock.Artisan()
++ artisan := mockFactory.Artisan()
-- auth := mock.Auth()
++ auth := mockFactory.Auth()
-- artisan := mock.Artisan()
++ artisan := mockFactory.Artisan()
-- cache, driver, lock := mock.Cache()
++ cache := mockFactory.Cache()
++ driver := mockFactory.CacheDriver()
++ lock := mockFactory.CacheLock()
-- config := mock.Config()
++ config := mockFactory.Config()
-- crypt := mock.Crypt()
++ crypt := mockFactory.Crypt()
-- event, task := mock.Event()
++ event := mockFactory.Event()
++ event := mockFactory.EventTask()
-- gate := mock.Gate()
++ gate := mockFactory.Gate()
-- grpc := mock.Grpc()
++ grpc := mockFactory.Grpc()
-- hash := mock.Hash()
++ hash := mockFactory.Hash()
-- mock.Log()
++ mockFactory.Log()
-- mail := mock.Mail()
++ mail := mockFactory.Mail()
-- orm, query, transaction, association := mock.Orm()
++ orm := mockFactory.Orm()
++ query := mockFactory.OrmQuery()
++ transaction := mockFactory.OrmTransaction()
++ association := mockFactory.OrmAssociation()
-- queue, task := mock.Queue()
++ queue := mockFactory.Queue()
++ task := mockFactory.QueueTask()
-- rateLimiter := mock.RateLimiter()
++ rateLimiter := mockFactory.RateLimiter()
-- storage, driver, file := mock.Storage()
++ storage := mockFactory.Storage()
++ driver := mockFactory.StorageDriver()
++ file := mockFactory.StorageFile()
-- seeder := mock.Seeder()
++ seeder := mockFactory.Seeder()
-- validation, validator, errors := mock.Validation()
++ validation := mockFactory.Validation()
++ validator := mockFactory.ValidationValidator()
++ errors := mockFactory.ValidationErrors()
-- view := mock.View()
++ view := mockFactory.View()Framework Orm modeli json tegini qo‘shadi
Versiya: v1.14.0
Agar siz freymvorkning Orm modelidan foydalanayotgan bo‘lsangiz va ma’lumotlarni to‘g‘ridan-to‘g‘ri endpoint orqali qaytarmoqchi bo‘lsangiz, eski modelga ko‘ra yangi model yaratib, eskisini almashtirishingiz yoki frontend json tegi bo‘yicha maydon nomini o‘zgartirishi kerak.
type Model struct {
-- ID uint `gorm:"primaryKey"`
++ ID uint `gorm:"primaryKey" json:"id"`
Timestamps
}
type SoftDeletes struct {
-- DeletedAt gorm.DeletedAt `gorm:"column:deleted_at"`
++ DeletedAt gorm.DeletedAt `gorm:"column:deleted_at" json:"deleted_at"`
}
type Timestamps struct {
-- CreatedAt carbon.DateTime `gorm:"autoCreateTime;column:created_at"`
-- UpdatedAt carbon.DateTime `gorm:"autoUpdateTime;column:updated_at"`
++ CreatedAt carbon.DateTime `gorm:"autoCreateTime;column:created_at" json:"created_at"`
++ UpdatedAt carbon.DateTime `gorm:"autoUpdateTime;column:updated_at" json:"updated_at"`
}Gin haydovchisida sessiya muvaffaqiyatli o‘rnatilmagan muammosini tuzatish
goravel/framework: v1.14.1
Lokalizatsiya modulida til faylini o‘qib bo‘lmaydigan muammosini tuzatish
goravel/framework: v1.14.1
Tasdiqlash (Validation) tasvir va fayl tekshiruvi muvaffaqiyatsiz tugagan muammosini tuzatish
goravel/framework: v1.14.2
goravel/gin: v1.2.2
goravel/fiber: v1.2.2
goravel/gin haydovchisi tomonidan o‘rnatilgan cookie Expires yaroqsiz bo‘lgan muammosini tuzatish
goravel/gin: v1.2.2
Tasdiqlash (Validation) kesim (slice) bog‘lay olmaydigan muammosini tuzatish
goravel/framework: v1.14.3
type User struct {
Tags []string `form:"tags" json:"tags"`
}Tasdiqlash (Validation) carbon bog‘lashni qo‘llab-quvvatlaydi
goravel/framework: v1.14.3
// Carbon maydonini aniqlash
type User struct {
Date carbon.Carbon `form:"date" json:"date"`
}
var user requests.User
// ValidateRequest yordamida ma’lumotlarni bog‘lash
errors, err := ctx.Request().ValidateRequest(&user)
// yoki Validate yordamida ma’lumotlarni bog‘lash
validator, err := ctx.Request().Validate(map[string]string{
"date": "required|date",
})
err := validator.Bind(&user)
// sana vaqtni olish
user.Date.ToDateTimeString()Sessiya konkurent muammosini tuzatish
goravel/framework: v1.14.4
Sessiya juda yuqori konkurentlikda bo‘lganda, sessiyani o‘qish va yozishda ziddiyat yuzaga kelishi mumkin
Gin Sessiya same_site parametrini noto‘g‘ri o‘rnatgan muammosini tuzatish
goravel/gin: v1.2.3
Route uchun Shutdown metodini qo‘shish
goravel/framework: v1.14.5
goravel/gin: v1.2.4
goravel/fiber: v1.2.3
HTTP ning ctx.WithValue metodini optimallashtirish
goravel/framework: v1.14.7
goravel/gin: v1.2.5
goravel/fiber: v1.2.4
ctx.WithValue metodining kaliti faqat string turini qo‘llab-quvvatlashdan har qanday (any) turini qo‘llab-quvvatlashga o‘zgartirildi
ctx.WithValue("Hello", "world")
ctx.WithValue(1, "hi")
var key struct{}
ctx.WithValue(key, "hola")Eshituvchini ro‘yxatdan o‘tkazish ziddiyati muammosini tuzatish
goravel/framework: v1.14.8
Bir nechta hodisalar bir xil eshituvchidan foydalansa, ro‘yxatdan o‘tkazishda eshituvchi ziddiyati haqida ogohlantirish chiqariladi.
Maxsus Log haydovchisi konsolida takroriy chop etish muammosini tuzatish
goravel/framework: v1.14.9
HTTP JSON So‘rovi ko‘p darajali tuzilishni o‘z ichiga olganda ma’lumotlarni bog‘lash xatosi muammosini tuzatish
goravel/framework: v1.14.9
