本周,Laravel 团队发布了 v11.9,其中包括一个新的默认异常页面,一种阻止破坏性命令运行的方法,withoutDelay() 队列方法等等。
新的默认异常页面
当您的应用程序处于调试模式时,Laravel 现在附带一个最小化的默认异常页面。更新后的错误页面支持浅色和深色模式
当 debug 为 false
时,异常页面将继续渲染默认的 Symfony 视图(除非您定义了自定义渲染器)
此更新仅影响新的 Laravel 应用程序,因此现有应用程序将继续使用 Ignition(如果已安装)。如果您想在新的 Laravel 应用程序中继续使用 Spatie Ignition 异常页面,可以使用 Composer 安装它
composer require spatie/laravel-ignition
查看 Pull Request #51261 和 #51587 获取更多详细信息。
阻止破坏性命令
Jason McCreary 和 Joel Clermont 贡献了一个 Prohibitable
特性,以及阻止 破坏性命令 运行的代码。您也可以将它们添加到您可能具有在某些环境(通常是生产环境)中不打算运行的破坏性行为的自定义 Artisan 命令中
use Illuminate\Console\Command;use Illuminate\Console\Prohibitable; class SomeDestructiveCommand extends Command{ use Prohibitable;} // SomeDestructiveCommand::prohibit($this->app->isProduction());
Laravel 框架包含一些包含 Prohibitable
特性的数据库命令,例如 db:wipe
、migrate:fresh
、migrate:refresh
和 migrate:reset
。您可以单独禁止它们,或者使用 DB Facade 禁止所有上述命令
// Prohibits: db:wipe, migrate:fresh, migrate:refresh, and migrate:resetDB::prohibitDestructiveCommands($this->app->isProduction());
withoutDelay()
添加到 Queueable
特性
将 Kennedy Tedesco 为 Queueable
特性贡献了一个 withoutDelay()
方法。如果一个作业有一个默认的延迟时间,您可以在您想要跳过该延迟的情况下使用它,而不是将 0
传递给 delay()
方法
dispatch((new MyJob($data))->delay(0)); dispatch((new MyJob($data))->withoutDelay());
发行说明
您可以看到下面的新特性和更新的完整列表,以及 11.8.0 和 11.9.0 之间的差异,在 GitHub 上。以下发行说明直接来自 变更日志
v11.9.0
- [11.x] 通过使用哈希表存储提供程序来优化引导时间,由 @sarven 在 https://github.com/laravel/framework/pull/51343 中完成
- [11.x] 阻止破坏性命令运行,由 @jasonmccreary 在 https://github.com/laravel/framework/pull/51376 中完成
- [11.x] 将左侧
has
重命名为contains
,由 @MrPunyapal 在 https://github.com/laravel/framework/pull/51532 中完成 - [10.x] 修复了拼写错误,由 @Issei0804-ie 在 https://github.com/laravel/framework/pull/51535 中完成
- [11.x] 修复了 Timebox.php 中的文档块,由 @saMahmoudzadeh 在 https://github.com/laravel/framework/pull/51537 中完成
- [11.x] 将测试函数重命名为匹配禁止操作,由 @faissaloux 在 https://github.com/laravel/framework/pull/51534 中完成
- [11.x] 修复了使用 Laravel BrowserKit 测试时的 LazilyRefreshDatabase,由 @MaxGiting 在 https://github.com/laravel/framework/pull/51538 中完成
- [10.x] 修复了数据库存储中 SQL Server 的检测,由 @staudenmeir 在 https://github.com/laravel/framework/pull/51547 中完成
- [11.x] 显示测试创建消息,由 @nshiro 在 https://github.com/laravel/framework/pull/51546 中完成
- [11.x] 检测 Cockroach DB 连接丢失,由 @saschaglo 在 https://github.com/laravel/framework/pull/51559 中完成
- [11.x] 修复了类型测试,由 @stayallive 在 https://github.com/laravel/framework/pull/51558 中完成
- [11.x] 将
withoutDelay()
添加到Queueable
特性,由 @KennedyTedesco 在 https://github.com/laravel/framework/pull/51555 中完成 - [11.x] 添加了一个选项,在加密后删除原始环境文件,由 @riasvdv 在 https://github.com/laravel/framework/pull/51556 中完成
- [10.x] - 当序列化错误时,修复了 Horizon 中的批量列表加载,由 @jeffortegad 在 https://github.com/laravel/framework/pull/51551 中完成
- [10.x] 修复了使用
BackedEnum
的显式路由绑定,由 @CAAHS 在 https://github.com/laravel/framework/pull/51586 中完成 - [11.x] 将
Macroable
添加到PendingCommand
,由 @PerryvanderMeer 在 https://github.com/laravel/framework/pull/51572 中完成 - [11.x] 改进了错误,由 @nunomaduro 在 https://github.com/laravel/framework/pull/51261 中完成
- [11.x] 将 RELEASE.md 添加到 .gitattributes,由 @Jubeki 在 https://github.com/laravel/framework/pull/51598 中完成
- [11.x] 修复了异常渲染,由 @nunomaduro 在 https://github.com/laravel/framework/pull/51587 中完成