看看近期作为最新的LTS版本的 Laravel 9 即将推出什么
Laravel v9 将成为 Laravel 的下一个 LTS 版本,并将在 2022 年1月25日正式发布。
在这篇文章中,我们想概述迄今为止宣布的所有新功能和更改。
Laravel 9 发布日期变更
Laravel v9 原定于今年 9 月左右发布,但 Laravel 团队决定将此版本推迟到 2022 年 1 月:
Laravel 使用各种社区驱动的包以及九个 Symfony 组件来实现框架内的许多功能。Symfony 6.0 将于 11 月发布。出于这个原因,我们选择将 Laravel 9.0 发布
推迟到 2022 年 1 月。通过推迟发布,我们可以将我们的底层 Symfony 组件升级到 Symfony 6.0,而不必被迫等到 2022 年 9 月才能执行此升级。此外,这更好地为我们未来的发布做好了准备,因为我们的年度发布总是在 Symfony 发布后两个月进行。
这也将推动未来的主要版本发布,这是未来的时间表:
Laravel 9:2022 年 1 月
Laravel 10:2023 年 1 月
Laravel 11:2024 年 1 月
PHP 8 Laravel 9 中的最低版本
由于 Laravel 9 将需要 Symfony 6.0 并且它的最低要求是 PHP 8,这意味着 Laravel 9 将具有相同的限制。
匿名存根迁移
今年早些时候,Laravel 8.37 推出了一项名为Anonymous Migrations的新功能,可以防止迁移类名称冲突。
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('people', function (Blueprint $table) {
$table->string('first_name')->nullable();
});
}
};
当 Laravel 9 启动时,这将是您运行时的默认设置 php artisan make:migration
新的查询生成器界面
感谢 Chris Morrell,Laravel 9 将拥有一个新的查询构建器界面,你可以看到这个合并的 PR以了解所有细节。
对于谁依赖型的提示进行静态分析,重构,或代码完成在他们的IDE,缺乏之间的共享接口或继承的开发Query\Builder,Eloquent\Builder并Eloquent\Relation可以很棘手:
return Model::query()
->whereNotExists(function($query) {
// $query is a Query\Builder
})
->whereHas('relation', function($query) {
// $query is an Eloquent\Builder
})
->with('relation', function($query) {
// $query is an Eloquent\Relation
});
此功能添加了一个新Illuminate\Contracts\Database\QueryBuilder接口和一个Illuminate\Database\Eloquent\Concerns\DecoratesQueryBuilder 特性,该特性实现了该接口以代替现有__call实现。
PHP 8 字符串函数
由于 PHP 8 将是最低版本,Tom Schlick 提交了一个PR以在类内部使用str_contains(),str_starts_with()和str_ends_with()函数\Illuminate\Support\Str。
从 SwiftMailer 到 Symfony Mailer
Symfony 弃用了 SwiftMailer,而 Laravel 9 进行了更改,以将 Symfony Mailer 用于所有邮件传输。这确实开启了一些重大更改,您可以查看 PR以了解所有详细信息。Laravel 9 升级指南将在正式发布后包含说明。
和更多...
Laravel 9 还有几个月的时间,更多的新功能和公告将会发布。我们将在发布时更新这篇文章。
转:
https://laravel-news.com/laravel-9
相关文章