从 v1.9 升级到 v1.10
令人兴奋的新功能 🎉
增强功能 🚀
重大变更 🛠
- APP_KEY 必填(1.10.0)
- 在 Form Request 下的方法添加 ctx 参数(1.10.0)
- facades.Auth.Parse 添加 payload 返回(1.10.0)
- Orm 的一些方法添加新的返回值(1.10.0)
升级指南
预计升级时间:20 分钟
更新依赖
更新 go.mod
文件中的依赖:
go get -u github.com/goravel/framework@v1.10.0 && go mod tidy
加密
版本:v1.10.0
添加 facades.Crypt
:
- 在 config/app.go 文件的
providers
项中添加&crypt.ServiceProvider{}
;
哈希
版本:v1.10.0
添加 facades.Hash
:
在 config/app.go 文件的
providers
项中添加&hash.ServiceProvider{}
;添加 config/hashing.go 文件;
为路由添加速率限制
版本:v1.10.0
优化 HTTP 启动模式
版本:v1.10.0
- 添加
config/http.go
配置,详细信息; facades.Route.Run
方法不再需要传递参数,默认使用http.host
和http.port
(您不需要修改代码,它向后兼容);- 现在
facades.Route.RunTLS
方法不再需要传递参数,默认使用http.tls.host
、http.tls.port
、http.tls.ssl.cert
和http.tls.ssl.key
,如果您正在使用它,需要修改代码; - 添加
facades.Route.RunTLSWithCert
方法,详情; - 将
app.url
、app.host
移动到http.url
、http.host
;
优化 GRPC 启动模式
版本:v1.10.0
现在 facades.Grpc.Run
方法不再需要传递参数,默认使用 grpc.host
和 grpc.port
(您不需要 修改代码,它向后兼容);
添加配置控制日志输出到控制台
版本:v1.10.0
在 config/logging.go
文件中为 single
、daily
通道添加 print
配置,可以控制日志输出到控制台,详情;
请求修改和添加方法
版本:v1.10.0
Input
方法从仅获取路由参数改为按以下顺序获取数据:json
、form
、query
、route
。注意:json
只能获取一维数据,否则将返回空;- 添加
Route
方法以替代原有的Input
方法; Query
和Form
方法的默认值修改为非必需;- 添加如下所示的方法:
方法 | 操作 |
---|---|
Route | 获取路由值 |
RouteInt | 获取路由值 |
RouteInt64 | 获取路由值 |
QueryInt | 从查询字符串获取输入 |
QueryInt64 | 从查询字符串获取输入 |
QueryBool | 从查询字符串中检索输入 |
InputInt | 检索输入值 |
InputInt64 | 检索输入值 |
InputBool | 检索输入值 |
Json | 检索Json |
队列支持延迟调度
版本:v1.10.0
添加 Delay
方法,详情
ORM 中的连接支持设置表前缀和单数形式
版本:v1.10.0
Model
支持指定表名,详情;- 在
config/database.go
的connection
中添加新的键:
prefix
:设置表名前缀; singular
:设置使用单数或复数形式的表名;
添加 docker-compose.yml 文件
版本:v1.10.0
您可以使用以下命令快速启动服务:
docker-compose build
docker-compose up
优化 Orm
版本:v1.10.0
- 添加以下方法:
函数 | 操作 |
---|---|
FirstOr | 通过回调查询或返回数据 |
FirstOrNew | 检索或创建新模型 |
FirstOrFail | 未找到错误 |
UpdateOrCreate | 更新或创建 |
- 之前报告过这样的错误,但现在已经支持了:
query := facades.Orm.Query()
query = query.Where()
支持迁移文件中的多个SQL语句
版本:v1.10.0
以前,迁移文件中只支持一个SQL语句,但现在支持多个语句。
为文件存储添加minio驱动
版本:v1.10.0
添加minio配置,详情。
contracts/http 添加 net/http 的状态映射
版本:v1.10.0
您可以在控制器中直接使用 http.StatusOK
等状态码,无需导入 net/http
。
APP_KEY 必填
版本:v1.10.0
.env
文件中的 APP_KEY
现在是必填项,您可以运行以下命令生成 APP_KEY: go run . artisan key:generate
。
为 Form Request 下的方法添加 ctx 参数
版本:v1.10.0
为 Form Request 下的方法添加 ctx http.Context
参数:Rules
、Messages
、Attributes
、 PrepareForValidation
,允许您进行更多自定义配置。
facades.Auth.Parse 添加有效载荷返回
版本:v1.10.0
err := facades.Auth.Parse(ctx, token)
更改为 payload, err := facades.Auth.Parse(ctx, token)
,通过 payload
你可以获取:
Guard
:当前守卫;Key
:用户标识;ExpireAt
:过期时间;IssuedAt
:签发时间;
Orm 的一些方法添加新的返回值
版本:v1.10.0
以下方法添加 *Result
返回值以获取受影响的行数:
res, err := query.Delete(&user)
res, err := query.Exec(fmt.Sprintf("DELETE FROM users where id = %d", user.ID))
res, err := query.ForceDelete(&User{})
res, err := query.Updates(User{Avatar: "avatar"})
// 受影响的行数
num := res.RowsAffected