Laravel 9.x重磅升级:十大新特性解析

Laravel 9.x 是 Laravel 框架的重要版本更新,于2022年2月发布,主要特性如下:

1. PHP 8.0+ 强制依赖

  • 最低要求 PHP 8.0
  • 全面支持 PHP 8.1 新特性(枚举、只读属性等)
php 复制代码
// PHP 8.1 枚举示例
enum Status: string {
    case Pending = 'pending';
    case Active = 'active';
}

2. Symfony 6.x 组件升级

  • 邮件组件升级至 Symfony Mailer(替换 Swift Mailer)
  • 改进的邮件发送队列处理
php 复制代码
Mail::to('user@example.com')->queue(new OrderShipped($order));

3. 模型访问器/修改器新语法

  • 更简洁的模型属性处理方式
php 复制代码
// 传统方式
public function getNameAttribute($value) { /* ... */ }

// 9.x 新语法
protected function name(): Attribute {
    return Attribute::make(
        get: fn ($value) => strtoupper($value),
        set: fn ($value) => strtolower($value),
    );
}

4. 匿名迁移类

  • 避免迁移类命名冲突
php 复制代码
use Illuminate\Database\Migrations\Migration;

return new class extends Migration {
    public function up() { /* ... */ }
};

5. 路由控制器改进

  • 路由组控制器自动前缀
php 复制代码
// 所有路由自动应用 UserController
Route::controller(UserController::class)->group(function () {
    Route::get('/profile', 'showProfile');
    Route::put('/profile', 'updateProfile');
});

6. SCOUT 数据库引擎

  • 新增轻量级全文搜索方案
bash 复制代码
composer require laravel/scout
php artisan scout:install

7. 测试辅助函数增强

  • freezeTime() 时间冻结
  • travelTo() 时间穿梭
php 复制代码
// 测试时间控制
$this->freezeTime();
$this->travelTo(now()->addDays(7));

8. Flysystem 3.x 集成

  • 云存储操作标准化
php 复制代码
Storage::disk('s3')->put('file.jpg', $content);

9. Ignition 错误页升级

  • 增强的错误调试界面
  • 代码片段上下文展示优化
  • 解决方案建议功能

10. 查询构造器接口

  • 强类型查询构建支持
php 复制代码
DB::table('users')->where('votes', '>', 0)->get();

其他重要更新

模块 变更内容
前端脚手架 移除 Bootstrap,默认使用 Vite
事件监听器 支持监听器队列自动发现
任务调度 新增 everyMinute() 快捷方法
加密机制 使用 OpenSSL 替代 Mcrypt

建议升级前使用官方升级指南进行兼容性检查:

bash 复制代码
composer create-project laravel/laravel example-app
相关推荐
niucloud-admin11 小时前
PHP SAAS 框架常见问题——配置问题——绑定手机号时提示“failed to verify SmsSdkAppld“
php
农村小镇哥12 小时前
PDO介绍+PDO增删改查+PDO事物处理+DPO封装类
php
niucloud-admin13 小时前
PHP SAAS 框架常见问题——配置问题——接口请求错误,请检查参数配置或伪静态配置
php
SPC的存折14 小时前
在Alpine 搭建 WordPress
linux·运维·服务器·数据库·php
黑牛儿14 小时前
AI Agent\+PHP实现智能接口限流,避开算力成本陷阱(结合今日AI热点)
开发语言·人工智能·php
北漂Zachary15 小时前
PHP vs C++ vs 易语言:三大语言对比解析
开发语言·c++·php
niucloud-admin15 小时前
PHP SAAS 框架常见问题——配置问题——修改 icon 图标
php
石榴树下的七彩鱼1 天前
图片修复 API 接入实战:网站如何自动去除图片水印(Python / PHP / C# 示例)
图像处理·后端·python·c#·php·api·图片去水印
Chockmans1 天前
春秋云境CVE-2021-34257
安全·web安全·网络安全·php·网络攻击模型·春秋云境·cve-2021-34257
盛世宏博北京1 天前
以太网温湿度传感器运维技巧,提升设备稳定性与使用寿命
开发语言·php·以太网温湿度传感器