從 v1.7 升級到 v1.8
令人興奮的新功能 🎉
功能增強 🚀
破壞性變化 🛠
- 優化 import 順序(1.8.0)
- mock.Validator 改名(1.8.0)
- support.Mysql 改名(1.8.0)
- 即將廢棄 database.NewGormInstance(1.8.0)
Bug 修復 🐛
升級指南
預估升級時間:1 分鐘
更新依賴
在 go.mod
文件中更新依賴:
go get -u github.com/goravel/framework@v1.8.3
Orm 新增模型關聯
版本:v1.8.0
Orm 新增方法,以處理模型關聯等操作:
方法 | 操作 |
---|---|
關聯 | 關聯操作 |
DB | 獲取通用資料庫接口 sql.DB |
負載 | 延遲預加載 |
LoadMissing | 延遲預加載(不存在) |
Omit | 忽略關聯 |
With | 預加載 |
Request 新增方法
版本:v1.8.0
ctx.Request()
新增方法,以豐富 Query
參數的格式:
方法 | 操作 |
---|---|
QueryArray | 獲取鏈接傳入的數組參數 |
QueryMap | 獲取地圖參數 |
為響應新增方法
版本:v1.8.0
向 ctx.Response()
新增 Origin
方法,你可以在 HTTP 中介軟件中獲取 Response
的所有信息。
優化導入順序
版本:v1.8.0
bootstrap/app.go
文件中的導入順序變更為:
go
package bootstrap
import (
"github.com/goravel/framework/foundation"
"goravel/config"
)
優化資料庫遷移
版本:v1.8.0
運行生成遷移文件的命令:go run . artisan make:migration create_users_table
,將根據當前使用的預設資料庫驅動(facades.Config.GetString("database.default")
)生成對應的遷移文件。
mock.Validator 改名
版本:v1.8.0
如果你使用 mock.Validator
來編寫單元測試,需要進行以下修改:
import "github.com/goravel/framework/testing/mock"
mock.Validator
// 修改為
import "github.com/goravel/framework/testing/mock"
mock.Validation
support.Mysql 改名
版本:v1.8.0
如果你使用 support.Mysql
等框架常量來判斷資料庫驅動,需要進行以下修改:
go
import "github.com/goravel/framework/database/support"
support.Mysql
support.Postgresql
support.Sqlite
support.Sqlserver
// 修改為
import "github.com/goravel/framework/contracts/database/orm"
orm.Mysql
orm.Postgresql
orm.Sqlite
orm.Sqlserver
新的常量如 orm.Mysql
是 orm.Driver
類型,並可以使用 orm.Mysql.String()
方法將其轉換為字符串類型。
database.NewGormInstance 即將被棄用
版本:v1.8.0
database.NewGormInstance
方法將在 v1.9.0 版本中被棄用,目前版本仍可使用,如果你使用該方法來獲取 gorm
實例,請進行以下修改:
go
import "github.com/goravel/framework/database"
gorm, err := database.NewGormInstance(connection)
// 修改為
import "github.com/goravel/framework/database/gorm"
gorm, err := gorm.New(connection)
修復 Orm 並發安全問題
版本:v1.8.1
在高併發訪問的情況下,第一次讀取 facades.Orm
可能會返回 nil。
修復 Mail 模塊無法通過 25 和 465 埠發送郵件的問題
版本:v1.8.2
現在你可以通過 25、465、587 埠發送郵件。
路由支持 HTTPS
版本:v1.8.3
facades.Route
新增 RunTLS
方法,支持啟動 HTTPS 伺服器,詳情。