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
相关推荐
BingoGo1 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack1 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户3074596982072 天前
PHP 扩展——从入门到理解
php
鹏仔先生3 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
云水一下3 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
xingpanvip3 天前
星盘接口开发文档:本命盘接口指南
android·开发语言·css·php·lua
酉鬼女又兒3 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php
dog2503 天前
不要再继续优化 TCP
网络协议·tcp/ip·php
Channing Lewis3 天前
PHP 解析 Excel 的那些坑:一次“行号错位”引发的数据丢失
开发语言·php·excel
Cheng小攸3 天前
渗透行为分析与检测
开发语言·php