Laravel 9.X新特性全解析
·
好的,Laravel 9.X 版本引入了一系列重要的新特性和改进。以下是其主要特性概述:
1. PHP 8.0+ 要求
Laravel 9 要求最低 PHP 版本为 8.0,充分利用了 PHP 8 的新特性(如联合类型、属性注解等)。
2. Symfony Mailer 替换 Swift Mailer
邮件组件从 Swift Mailer 迁移至 Symfony Mailer,提供更现代的邮件发送支持。
3. Flysystem 第三版集成
文件存储系统升级到 Flysystem 第三版,支持更好的云存储适配器。
4. 路由绑定语法简化
路由模型绑定支持更简洁的语法:
Route::get('/users/{user}', function (User $user) {
return $user;
});
5. Eloquent 访问器/修改器改进
支持类型声明和更简洁的定义方式:
public function getName(): Attribute
{
return Attribute::make(
get: fn ($value) => ucfirst($value),
set: fn ($value) => strtolower($value),
);
}
6. 隐式路由绑定作用域
支持在路由中自动限定关联模型的查询范围:
Route::get('users/{user}/posts/{post}', function (User $user, Post $post) {
return $post;
})->scopeBindings();
7. 测试辅助函数增强
新增测试辅助方法:
$this->assertDatabaseCount('users', 5);
$this->assertSoftDeleted($user);
8. Blade 组件改进
支持渲染内联模板和简化属性传递:
<x-alert type="error" :message="$message"/>
9. 新的查询构造器接口
新增 whereBelongsTo() 简化关联查询:
$posts = Post::whereBelongsTo($user)->get();
10. 枚举属性支持
Eloquent 模型支持 PHP 8.1 原生枚举类型:
use App\Enums\UserStatus;
class User extends Model
{
protected $casts = [
'status' => UserStatus::class,
];
}
11. 优化计划任务输出
Artisan 命令 schedule:list 可列出所有计划任务及其状态。
12. 默认 Ignition 错误页
使用更强大的 Ignition 作为默认错误调试页面。
13. 流式数据库操作
新增 DB::transaction() 流式接口:
DB::transaction(function () {
// 事务操作
});
这些改进显著提升了开发效率、代码可读性和框架性能,同时保持了对现代化 PHP 特性的良好支持。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)