Kontentga o‘tish

v1.12 dan v1.13 ga yangilash

Qiziqarli Yangi Imkoniyatlar 🎉

Yaxshilanishlar 🚀

v1.13.4

O‘zgartirishlar Kerak Bo‘lgan O‘zgarishlar 🛠

Xatolarni Tuzatishlar 🐛

v1.13.2

v1.13.4

v1.13.5

v1.13.6 v1.13.7

v1.13.8

v1.13.9

v1.13.10

Yangilash Qo‘llanmasi

Iltimos, ushbu bo‘limdagi mazmunga muvofiq freymvorkni bosqichma-bosqich yangilang.

Taxminiy Yangilash Vaqti: 10 Daqiqa

1. Bog‘liqliklarni Yangilash

go.mod faylidagi bog‘liqliklarni yangilang:

go get -u github.com/goravel/framework@v1.13.9 && go get -u github.com/goravel/gin

2. Yangi Fayllarni Qo‘shish

tests

database/seeders/database_seeder.go

app/providers/database_service_provider.go

3. Yangi Provayderlarni Ro‘yxatdan O‘tkazish

Tartibga e‘tibor bering:

go
import (
  "github.com/goravel/framework/testing"
  "github.com/goravel/gin"
)

// config/app.go
"providers": []foundation.ServiceProvider{
  ...
  &validation.ServiceProvider{},
  // Yangi
  &testing.ServiceProvider{},
  &providers.AppServiceProvider{},
  ...
  &providers.ValidationServiceProvider{},
  // Yangi
  &providers.DatabaseServiceProvider{},
  // Yangi
  &gin.ServiceProvider{},
}

4. Konfiguratsiya Qo‘shish

config/http.go ni o‘zgartiring

go
import (
  "github.com/goravel/framework/contracts/route"
  "github.com/goravel/framework/facades"
  ginfacades "github.com/goravel/gin/facades"
)

config.Add("http", map[string]any{
  // HTTP Haydovchisi
  "default": "gin",
  // HTTP Haydovchilari
  "drivers": map[string]any{
    "gin": map[string]any{
      "route": func() (route.Route, error) {
        return ginfacades.Route("gin"), nil
      },
    },
  },
  ...
}

config/cors.go faylini o'zgartiring

go
config.Add("cors", map[string]any{
  ...
  // Yangi
  "paths":                []string{"*"},
  "allowed_methods":      []string{"*"},
  ...
}

5. Sukut bo'yicha Yuklangan Global HTTP Middleware-ni O'chirish

  1. tls va cors middleware-lari sukut bo'yicha HTTP haydovchisiga integratsiya qilingan, shuning uchun app/http/kernel.go faylidagi middleware.Cors() va middleware.Tls() metodlarini o'chirish kerak.

  2. app/providers/route_service_provider.go faylidagi facades.Route().GlobalMiddleware(http.Kernel{}.Middleware()...) metodi Registerdan Bootga ko'chiriladi:

go
package providers

...

type RouteServiceProvider struct {
}

func (receiver *RouteServiceProvider) Register(app foundation.Application) {
}

func (receiver *RouteServiceProvider) Boot(app foundation.Application) {
  //HTTP middleware qo'shing
  facades.Route().GlobalMiddleware(http.Kernel{}.Middleware()...)

  receiver.configureRateLimiting()

  routes.Web()
}

func (receiver *RouteServiceProvider) configureRateLimiting() {

}

6. Controller Qaytaruvini Optimallashtirish

Controller qaytish qiymati sifatida http.Responseni qo'shadi, ctx.Response() to'g'ridan-to'g'ri qaytarilishi mumkin, mantiqni silliqroq qilish uchun alohida return ishlatish shart emas.

go
// Oldin
func (r *UserController) Show(ctx http.Context) {
  ctx.Response().Success().Json(http.Json{
    "Hello": "Goravel",
  })
  return
}

// Keyin
func (r *UserController) Show(ctx http.Context) http.Response {
  return ctx.Response().Success().Json(http.Json{
    "Hello": "Goravel",
  })
}

7. facades.Route() dagi Group Metodi Parametrini O'zgartirish

route.Routeni route.Routerga o'zgartiring:

go
// Oldin
facades.Route().Group(func(route route.Route)

// Keyin
facades.Route().Group(func(route route.Router)

8. facades.Cache() dagi Remember Va RememberForever Metodlarini Optimallashtirish (Agar ishlatilsa)

callback turi func() anydan func() (any, error)ga o'zgaradi:

go
// Oldin
Remember(key string, ttl time.Duration, callback func() any) (any, error)
RememberForever(key string, callback func() any) (any, error)

// Keyin
Remember(key string, ttl time.Duration, callback func() (any, error)) (any, error)
RememberForever(key string, callback func() (any, error)) (any, error)

9. access.NewAllowResponse va access.NewDenyResponse Paket Nomi O'zgartirish (Agar ishlatilsa)

/contracts/auth/accessni /auth/accessga o'zgartiring:

go
// Oldin
import "github.com/goravel/framework/contracts/auth/access"

access.NewAllowResponse()
access.NewDenyResponse()

// Keyin
import "github.com/goravel/framework/auth/access"

access.NewAllowResponse()
access.NewDenyResponse()

10. Eskirgan Metodlarni O'chirish (Agar ishlatilsa)

  1. ctx.Request().Form() va ctx.Request().Json() metodlarini o'chiring, o'rniga ctx.Request().Input() metodidan foydalaning;

  2. Log maxsus haydovchisining GetLevel, GetTime, GetMessage metodlarini o'chiring, o'rniga Level, Time, Message metodlaridan foydalaning;

  3. gorm.New metodini o'chiring, bu metod gorm instansiyasini to'g'ridan-to'g'ri olish uchun ishlatiladi, endi tavsiya etilmaydi. agar kerak bo'lsa, o'rniga gorm.NewGormImpl metodidan foydalaning;

Funksiya Tavsifi

Urg'ochish

Versiya: v1.13.1

Tafsilotlar uchun

Zavodlar

Versiya: v1.13.1

Tafsilotlar uchun

Sinov

Versiya: v1.13.1

Tafsilotlar uchun

Ko‘rishlar

Versiya: v1.13.1

Tafsilotlar uchun

Sukut bo'yicha Golang Versiyasini 1.20 ga Yangilash

Versiya: v1.13.1

Golang 1.18 va 1.19 to'xtatilgan va framework shunga mos ravishda 1.20 ga yangilangan, tafsilotlar uchun. Agar 1.18 yoki 1.19 dan foydalanishni davom ettirmoqchi bo'lsangiz, go.mod dagi versiya raqamini o'zgartiring, ular hozirda to'liq mos keladi.

Vazifa Rejalashtirish Gorizontal Masshtabni Qo'llab-quvvatlaydi

Versiya: v1.13.1

Tafsilotlar uchun

debug Metodlarini Qo'shish

Versiya: v1.13.1

Tafsilotlar uchun

make:controller Buyrug'iga Parametr Qo'shish

Versiya: v1.13.1

make:controller buyrug'iga --resource parametri qo'shildi, CURD strukturasini osongina yaratish mumkin:

go run . artisan make:controller --resource UserController

Response uchun Status Metodini Qo'shish

Versiya: v1.13.1

Tafsilotlar uchun

Orm uchun Sum va Cursor Metodlarini Qo'shish

Versiya: v1.13.1

Tafsilotlar uchun

Route Moduli Haydovchini Sozlashni Qo'llab-quvvatlaydi

Versiya: v1.13.1

Route moduli asosiy sukut bo'yicha haydovchisi Gin ni paketga ajratdi, u Goravel ga sozlash orqali kiritilishi mumkin. bu optimallashtirishdan so'ng, boshqa HTTP paketlarini Goravel ga kiritish uchun qulay kanal taqdim etadi, hozirda rasmiy ravishda ikkita HTTP paketi qo'llab-quvvatlanadi:

HaydovchiHavola
Ginhttps://github.com/goravel/gin
Fiberhttps://github.com/goravel/fiber

Request uchun InputArray Va InputMap Metodlarini Qo'shish

Versiya: v1.13.1

Tafsilotlar uchun

Orm Modeli Maxsus Ulanishni Qo'llab-quvvatlaydi

Versiya: v1.13.1

Tafsilotlar uchun

Filesystem uchun Cloudinary Haydovchisini Qo'shish

Versiya: v1.13.1

Tafsilot uchun

Log uchun Yangi Chain Metodlarini Qo'shish

Versiya: v1.13.1

Tafsilotlar uchun

facades.Auth().User() ni tuzatish

Versiya: v1.13.1

  1. facades.Auth().User(ctx, &user) usuli ishlatilganda foydalanuvchi mavjud bo‘lmaganda xato chiqmasligi muammosini tuzatish.

  2. Asosiy kalbut int bo‘lmaganda ham user topilishi mumkin bo‘lgan muammoni tuzatish;

Ba‘zi hollarda maxsus .env yo‘li ishlamasligi muammosini tuzatish

Versiya: v1.13.1

Ba‘zi hollarda maxsus .env yo‘li ishlamasligi muammosini tuzatish.

JWT da ttl == 0 o‘rnatilganda token darhol muddati tugashi muammosini tuzatish

Versiya: v1.13.1

ttl == 0 bo‘lganda token hech qachon muddati tugamasligini kutish.

facades.Storage().Url() Windows ostida noto‘g‘ri yo‘l qaytarishi muammosini tuzatish

Versiya: v1.13.2

Muammo #263

Postgres paroli bo‘sh bo‘lganda g‘ayritabiiy ulanish muammosini tuzatish

Versiya: v1.13.2

Muammo #270

Orm ning Cursor usuli ishlatilganda With usuli ishlamasligi muammosini tuzatish

Versiya: v1.13.2

Muammo #253

Xizmatni ishga tushirish muhit o‘zgaruvchilarini qo‘llab-quvvatlaydi

Versiya: v1.13.4

Muammo #265

Validatsiya moduli marshrut parametrlarini tekshira olmasligi muammosini tuzatish

goravel/gin: v1.1.6

goravel/fiber: v1.1.11

Muammo #294

Fiber haydovchisi fayl qaytara olmasligi muammosini tuzatish

goravel/fiber: v1.1.11

Muammo #299

Fiber haydovchisining global middleware panikasi muammosini tuzatish

goravel/fiber: v1.1.11

Muammo #300

Fiber haydovchisining ContentType sozlamasi Gin haydovchisidan farq qilishi muammosini tuzatish

goravel/fiber: v1.1.11

Muammo #296

Modelning ulanishi ishlamasligi muammosini tuzatish

goravel/framework: v1.13.5

Muammo #312

Mock Log xatosini tuzatish

goravel/framework: v1.13.5

Muammo #320

So‘rov zanjirining chiziqli bo‘lmagan bajarilishi muammosini tuzatish

goravel/framework: v1.13.6 v1.13.7

Muammo #341

facades.Auth().Parse() muammosini tuzatish

goravel/framework: v1.13.8

Muammo #388

facades.Orm().WithContext() muammosini tuzatish

goravel/framework: v1.13.8

Muammo #390

goravel/framework: v1.13.8

APP_DEBUG=false bo‘lganda Debug va Info darajalari chop etilmaydi

Muammo #389

Log ning yangi qator chop etilishi noto‘g‘ri bo‘lishi muammosini tuzatish

goravel/framework: v1.13.9

Muammo #395

vendor:publish buyrug‘i katalogni nashr eta olmasligi muammosini tuzatish

goravel/framework: v1.13.9

Muammo #345

Log.Error dan keyin Log.Info chaqirilganda izlar tozalanmasligi muammosini tuzatish

goravel/framework: v1.13.10

Muammo #402

Orm hodisasi GetAttribute noto‘g‘ri ma’lumot qaytarishi muammosini tuzatish

goravel/framework: v1.13.10

Muammo #405

ORM uchun ToSql, ToRawSql usullarini qo‘shish

goravel/framework: v1.13.10

Muammo #411

MIT litsenziyasi ostida chiqarilgan