Laravel 9.37版本发布
Laravel团队在本周发布了9.37版本,以及9.37和Laravel 9.36版本之间的一些补丁发布。
本周发布的版本增加了对用Vite预装资产的支持, 新的严格违规处理程序, verbose view caching CLI output, 以及更多.
粗略的视图缓存
Andrew Brown贡献了在view:cache artisan命令中传递-v的功能,以输出命令正在寻找的目录,
以及-vv以查看命令缓存的每个文件。
php artisan view:cache -vv
下面是一个例子,你会看到一个新安装的Laravel 9.37的情况。
悄悄丢弃和丢失属性的处理程序
Aaron Francis贡献了为 "默默抛弃 "和 "丢失属性 "的严格模式违规注册处理程序的能力。
Model::handleMissingAttributeViolationUsing(
function ($model, $key) {
// ...
}
);
Model::handleDiscardedAttributeViolationUsing(
function ($model, $keys) {
// ...
}
);
通过对救援报告参数的封闭
@foremtehan 贡献了在使用 rescue() 时传递一个可调用的参数作为 $report,
这样你可以根据返回的布尔值有条件地报告错误。
rescue(fn() => 'error', fn() => 'rescue', function(Throwable $e){
return $e instanceof SomeException;
});
支持用Vite预装资产
蒂姆-麦克唐纳(Tim MacDonald)贡献了预加载当前页面加载所需的资产与Vite。它现在是使用Vite的Laravel应用程序的默认行为。
这个工作的细节是相当复杂的, 我建议你阅读Pull Request #44096的描述.
另外,你可以了解更多关于预加载关键资产以提高加载速度的一般概念。
查询生成器的原始值方法
@eusonlito贡献了一个rawValue()方法,用于从SQL表达式中获取一个值。
下面是拉动请求中的一些例子。
$first = TripModel::orderBy('date_at', 'ASC')
->rawValue('YEAR(`date_at`)');
$last = TripModel::orderBy('date_at', 'DESC')
->rawValue('YEAR(`date_at`)');
$fullname = UserModel::where('id', $id)
->rawValue('CONCAT(`first_name`, " ", `last_name`)');
发布说明
你可以在GitHub上看到以下完整的新功能和更新列表以及9.36.0和9.37.0之间的差异。
下面的发行说明直接来自更新日志。
https://github.com/laravel/framework/compare/v9.36.0...v9.37.0
https://github.com/laravel/framework/blob/a56be4209679c8318d7e2761aa52fcdb882fa42f/CHANGELOG.md#v9370---2022-10-25
v9.37.0
已添加
视图缓存时增加了可选的粗略输出(#44673)。
允许通过封闭来拯救$report参数(#44710)
支持用Vite预装资产(#44096)
新增 Illuminate/Mail/Mailables/Content::htmlString() (#44703)
修正了
固定model:show注册getAttribute()为空访问器(#44683)
修复了PendingCommand中输出断言的预期(#44723)
v9.36.4
已添加
为数据库查询生成器添加了rawValue(和Eloquent作为封装器)(#44631)。
已添加 TransactionCommitting (#44608)
为 CliDumper 和 HtmlDumper 添加了 dontIncludeSource (#44623)
已添加 Illuminate/Filesystem/FilesystemAdapter::checksum() (#44660)
增加了默许丢弃和丢失属性的处理程序 (#44664)
撤销了
撤销了 "让MustVerifyEmail用于没有id作为主键的模型"(#44672)。
已更改
克隆请求时创建新的Json ParameterBag实例(#44671)。
防止在运行 env:decrypt 时启动提供商 (#44654)
v9.36.3
撤销了
恢复了对视图事件的微优化(#44653)。
已修复
修复了刀片在view:clear时不会忘记已编译的视图(#44643)。
修正 Illuminate/Database/Eloquent/Model::offsetExists() (#44642)
在测试之间忘记组件的缓存和工厂(#44648)
改变了
颠覆了测试平台的依赖性 (#44651)
v9.36.2
修正了
确保视图创建者和作曲者在*出现时被调用 (#44636)
v9.36.1
修复了
修复了使用createBladeViewFromString的Livewire组件(#pull)
转:
https://laravel-news.com/laravel-9-37-0
相关文章