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
相关推荐
Bobolink_5 小时前
跨境业务网络环境评估,“干净、一致、独享”三个关键指标
开发语言·网络·php·跨境网络·网络环境
2401_894915539 小时前
Geo搜索优化排名源码部署搭建全流程详解
android·开发语言·flask·php·精选
2601_9637713710 小时前
Hardening Enterprise WordPress Sites Against REST API Leaks and Bad Headers
前端·windows·word·php
weixin_BYSJ198719 小时前
springboot美食食谱小程序---附源码24044
java·spring boot·python·spring cloud·django·tomcat·php
木木子221 天前
[特殊字符] 音乐播放器——状态驱动的多媒体控制
android·开发语言·华为·php·harmonyos
酷酷的身影1 天前
Drivers/LedManager.cs
开发语言·php
可靠的仙人掌1 天前
SAC(Soft Actor-Critic)算法底座
开发语言·算法·php
qq_422152572 天前
PDF内容复用的几种实用方法:转PPT、转图片、转长图
pdf·php·powerpoint
weixin_BYSJ19872 天前
SpringBoot + MySQL 乒乓球运动员信息管理系统项目实战--附源码04954
java·javascript·spring boot·python·django·flask·php
用户3074596982073 天前
GatewayWorker 从零到一完整指南
javascript·php