Laravel多年来一直是最流行的PHP框架之一。它优雅、可扩展,已成为开发人员和使用PHP的公司的事实上的框架之一。现在,Laravel 9即将推出大量新功能。
过去,新版本每六个月发布一次,导致对Laravel的新发布过程提出了相当多的问题、严厉的评论和混乱。随着Laravel 9的发布,该框架已进入12个月的主要发布周期,并将于2022年1月发布。
本文探讨了Laravel 9的主要功能。最重要的是,我们还将详细介绍如何升级到Laravel 9并开始开发Web应用程序。
什么是 Laravel?
Laravel是一个开源的PHP Web应用程序框架,以其优雅的语法而闻名。它是一个MVC框架,用于使用PHP编程语言构建简单到复杂的Web应用程序,它严格遵循MVC(模型-视图-控制器)架构模式。
如果您还没有使用过Laravel,您可以阅读Laravel与django的对比文章以深入了解,并查看我们基于Laravel开发实时评论系统的教程以开始使用。
Laravel的主要特性
如果你是这个框架的新手,我们精选了一些最好的Laravel特性来让你更好地理解。
Laravel功能(图片来源:Moon Technolabs)
Eloquent ORM
Laravel的对象关系映射器 (ORM) 称为Eloquent,它是Laravel的最佳功能之一,因为它允许与所选的数据模型和数据库进行无缝交互。
使用Eloquent,Laravel抽象了涉及交互和编写复杂SQL查询以访问数据库数据的所有障碍。
Artisan CLI
Artisan CLI或命令行是Laravel的另一个重要方面。有了它,您可以从命令行创建或修改Laravel的任何部分,而无需浏览文件夹和文件。
借助Artisan,您甚至可以使用Laravel Tinker从命令行直接与数据库交互——所有这些都无需安装数据库客户端。
MVC架构
Laravel的MVC架构特性使该语言具有相关性和适应性,因为它遵循流行的Web开发模式,并不断进行重大改进。
Laravel将迫使您学习和理解MVC架构模式,该模式在几乎所有框架中都很流行和使用,例如来自JavaScript的AdonisJS和来自C#的ASP.NET MVC。
自动分页
如果您曾经为应用程序中的分页而苦恼,您就会明白通过内置框架整理分页的价值。
Laravel通过构建开箱即用的自动分页来解决分页麻烦。此功能是其最受认可的功能之一,它消除了自己解决分页之谜所涉及的工作。
安全
仔细检查您正在考虑使用的任何Web应用程序的安全措施至关重要,因为缺乏尽职调查可能会导致资金损失,甚至您的网站或产品被劫持。
由于Laravel遵守OWASP安全原则,因此提供了许多安全措施。从跨站点请求伪造 (CSRF) 到SQL注入,Laravel都有一个内置的解决方案。
对Laravel 9有何期待
Laravel 9计划于2021年9月发布,已被推迟到2022年1月,使其成为第一个在12个月发布周期后推出的长期支持 (LTS) 版本。造成这种延迟的原因有很多,包括但不限于以下几点:
- Laravel 使用各种社区驱动的项目和大约九个Symfony库。然而,Symfony计划在2021年11月之前发布6.0版本。延迟将使Laravel团队能够将这个新版本的Symfony作为Laravel 9的一部分。
- 延迟将使团队有时间监控Laravel如何与新版本的Symfony交互两个月。它还为他们提供了纠正任何重大更改或错误的空间。
- 最后,推迟Laravel 9的发布可以更好地为Laravel团队定位,以应对未来每年的发布。在Symfony发布后,这将为团队提供两个月的额外提升时间。
由于这些原因,您可以看到其发布的延迟值得等待。
Laravel 9的新特性
现在,让我们探索在即将到来的 Laravel 主要版本中你应该期待的特性和改进列表。
最低PHP要求
首先也是最重要的是,Laravel 9需要最新的PHP 8和PHPUnit 8进行测试。这是因为Laravel 9将使用最新的Symfony v6.0,它也需要PHP 8。
匿名存根迁移
当您运行流行的迁移命令时,Laravel将匿名存根迁移设置为默认行为:
php artisan make:migration
匿名存根迁移功能最初是在Laravel 8.37中发布的,用于解决Github的这个问题。问题是尝试从头开始重新创建数据库时,具有相同类名的多个迁移可能会导致问题。新的存根迁移功能消除了迁移类名称冲突。
从Laravel 8.37开始,该框架现在支持匿名类迁移文件,而在Laravel 9中,它将成为默认行为。
<?php 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中,类型提示对于IDE中的重构、静态分析和代码完成非常可靠。这是由于Query\Builder、Eloquent\Builder 和 Eloquent\Relation之间缺乏共享接口或继承。尽管如此,使用Laravel 9,开发人员现在可以享受用于类型提示、重构和静态分析的新查询构建器界面。
<?php 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 interface
, 以及Illuminate\Database\Eloquent\Concerns\DecoratesQueryBuilder
将实现接口代替__call
魔法方法的特性。
PHP 8字符串函数
由于Laravel 9针对PHP 8,Laravel合并了这个PR,建议使用最新的PHP 8字符串函数。
这些功能包括使用的 str_contains()
,str_starts_with()
以及str_ends_with()
在内部\Illuminate\Support\Str
类。
上面列出的Laravel 9的功能和改进是对即将发生的事情的先睹为快。它肯定会带来许多错误修复、功能,当然还有许多重大更改。
如何安装Laravel 9
如果您想开始使用Laravel 9进行开发和测试,您可以轻松地在本地机器上安装和运行它。
Laravel 9支持PHP 8,因此如果您打算测试它,请务必检查您的PHP版本或启动全新安装。
您可以通过Packagist发现有关该版本的更多详细信息。
要使用composer安装Laravel 9,请运行以下命令:
composer create-project --prefer-dist laravel/laravel laravel-9-dev dev-develop
上面的命令将laravel-9-dev
使用最新的Laravel 9创建一个名为 的新Laravel项目,正如我们所知,它仍在开发中(因此dev-develop
)。
第二种方法是使用Laravel全局CLI创建一个新的Laravel项目,并选择从dev分支创建你的新项目。
输入以下命令创建一个新的Laravel 9项目:
laravel new laravel-9-dev --dev
现在你已经安装了Laravel 9,你可以进入新目录(laravel-dev)并执行artisan命令来检查版本:
cd laravel-9-dev php artisan --version
它应该向您展示Laravel 9的开发版本。瞧!
小结
Laravel是一个引人注目的PHP框架,在开发人员中越来越受到关注。它即将发布的主要版本(Laravel 9)是12个月发布周期之后的第一个版本,我们已经可以看到它将引入“多汁”的新功能。
这是新功能的完整列表吗?可能不会,因为 Laravel 团队可能会在发布日期之前宣布新功能。因此,请务必将此帖子加入书签,因为我们将在未来的更新中介绍它们。
评论留言