Laravel 9.37版本发布

2023-06-01 00:00:00 laravel 版本 发布

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的情况。

1.png


悄悄丢弃和丢失属性的处理程序

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

相关文章