看看近期作为最新的LTS版本的 Laravel 9 即将推出什么

2023-06-01 00:00:00 版本 推出 近期

Laravel v9 将成为 Laravel 的下一个 LTS 版本,并将在 2022 年1月25日正式发布。

在这篇文章中,我们想概述迄今为止宣布的所有新功能和更改。

laravel9.png

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

相关文章