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
相关推荐
PHP实战开发录2 小时前
MySQL字段加索引为什么没变快
数据库·mysql·php·开发
狗凯之家源码网4 小时前
PHP 用户反馈系统源码深度评测与实战指南
开发语言·php·用户反馈系统
AC赳赳老秦6 小时前
数据采集全链路审计留痕:用 OpenClaw 实现合规审计与追溯
开发语言·汇编·python·php·swift·deepseek·openclaw
aixingpan8 小时前
aixingpan.cn API开发文档:api_docs_bichart_natalvssecondary2接口指南
前端·php
乃嘿仔11 小时前
AI 热点日报 · 2026-10-01
开发语言·人工智能·php
ai小陈11 小时前
GPU服务器租用部署实战:用systemd守护模型推理服务
运维·服务器·人工智能·ai·php·gpu算力
Zhang~Ling12 小时前
Linux网络:五种IO模型及其工作原理与应用
linux·网络·php
haerapi1 天前
RAPTOR 树不是把文档简单分组:递归聚类的层级检索
数据挖掘·php·聚类
m0_380743871 天前
PHP 8.3 缓存清除不生效怎么排查
开发语言·php
m0_380743871 天前
PHP7.3和7.2字符串功能有什么不同
开发语言·php