跳转到内容

从 v1.9 升级到 v1.10

令人兴奋的新功能 🎉

增强功能 🚀

重大变更 🛠

升级指南

预计升级时间:20 分钟

更新依赖

更新 go.mod 文件中的依赖:

go get -u github.com/goravel/framework@v1.10.0 && go mod tidy

加密

版本:v1.10.0

添加 facades.Crypt

  1. config/app.go 文件的 providers 项中添加 &crypt.ServiceProvider{}

详细信息

哈希

版本:v1.10.0

添加 facades.Hash

  1. config/app.go 文件的 providers 项中添加 &hash.ServiceProvider{}

  2. 添加 config/hashing.go 文件;

详细信息

为路由添加速率限制

版本:v1.10.0

详细信息

优化 HTTP 启动模式

版本:v1.10.0

  1. 添加 config/http.go 配置,详细信息
  2. facades.Route.Run 方法不再需要传递参数,默认使用 http.hosthttp.port(您不需要修改代码,它向后兼容);
  3. 现在 facades.Route.RunTLS 方法不再需要传递参数,默认使用 http.tls.hosthttp.tls.porthttp.tls.ssl.certhttp.tls.ssl.key,如果您正在使用它,需要修改代码;
  4. 添加 facades.Route.RunTLSWithCert 方法,详情
  5. app.urlapp.host 移动到 http.urlhttp.host

优化 GRPC 启动模式

版本:v1.10.0

现在 facades.Grpc.Run 方法不再需要传递参数,默认使用 grpc.hostgrpc.port(您不需要 修改代码,它向后兼容);

添加配置控制日志输出到控制台

版本:v1.10.0

config/logging.go 文件中为 singledaily 通道添加 print 配置,可以控制日志输出到控制台,详情

请求修改和添加方法

版本:v1.10.0

  1. Input 方法从仅获取路由参数改为按以下顺序获取数据: jsonformqueryroute。注意:json 只能获取一维数据,否则将返回空;
  2. 添加 Route 方法以替代原有的 Input 方法;
  3. QueryForm 方法的默认值修改为非必需;
  4. 添加如下所示的方法:
方法操作
Route获取路由值
RouteInt获取路由值
RouteInt64获取路由值
QueryInt从查询字符串获取输入
QueryInt64从查询字符串获取输入
QueryBool从查询字符串中检索输入
InputInt检索输入值
InputInt64检索输入值
InputBool检索输入值
Json检索Json

队列支持延迟调度

版本:v1.10.0

添加 Delay 方法,详情

ORM 中的连接支持设置表前缀和单数形式

版本:v1.10.0

  1. Model 支持指定表名,详情
  2. config/database.goconnection 中添加新的键:

prefix:设置表名前缀; singular:设置使用单数或复数形式的表名;

详细信息

添加 docker-compose.yml 文件

版本:v1.10.0

您可以使用以下命令快速启动服务:

docker-compose build
docker-compose up

优化 Orm

版本:v1.10.0

  1. 添加以下方法:
函数操作
FirstOr通过回调查询或返回数据
FirstOrNew检索或创建新模型
FirstOrFail未找到错误
UpdateOrCreate更新或创建
  1. 之前报告过这样的错误,但现在已经支持了:
go
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 参数:RulesMessagesAttributesPrepareForValidation,允许您进行更多自定义配置。

查看详情

facades.Auth.Parse 添加有效载荷返回

版本:v1.10.0

err := facades.Auth.Parse(ctx, token) 更改为 payload, err := facades.Auth.Parse(ctx, token),通过 payload 你可以获取:

  1. Guard:当前守卫;
  2. Key:用户标识;
  3. ExpireAt:过期时间;
  4. IssuedAt:签发时间;

查看详情

Orm 的一些方法添加新的返回值

版本:v1.10.0

以下方法添加 *Result 返回值以获取受影响的行数:

go
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

基于 MIT 许可发布