Laravel 9.x 引入了多项重要更新和优化,以下是核心特性概述:


1. PHP 8.0+ 依赖

  • 最低要求 PHP 8.0,并兼容 PHP 8.1 新特性(如枚举、只读属性等)。

2. 路由模型绑定简化

  • 支持隐式绑定增强:
    Route::get('/users/{user}', function (User $user) {
        return $user;
    });
    

  • 无需显式定义模型关联逻辑。

3. 访问器/修改器优化

  • 使用 Illuminate\Database\Eloquent\Casts\Attribute 定义:
    use Illuminate\Database\Eloquent\Casts\Attribute;
    
    public function name(): Attribute
    {
        return new Attribute(
            get: fn ($value) => strtoupper($value),
            set: fn ($value) => $value,
        );
    }
    

  • 更简洁的类型声明与逻辑封装。

4. 测试辅助函数增强

  • HTTP 测试支持 assertStatus() 链式调用:
    $response = $this->get('/api/data')
        ->assertStatus(200)
        ->assertJson(['key' => 'value']);
    


5. 文件存储改进

  • 新增 Storage::throwIfExists()Storage::throwUnlessExists(),用于显式控制文件冲突异常。

6. Eloquent 关联聚合优化

  • 新增 withAggregate() 方法,简化关联模型统计查询:
    User::withAggregate('posts', 'count')->get();
    

  • 替代手动 JOIN 或子查询。

7. Symfony Mailer 集成

  • 弃用 Swift Mailer,改用 Symfony Mailer 作为默认邮件驱动,提升稳定性和扩展性。

8. Flysystem 升级至 v3

  • 文件存储层适配 Flysystem v3,支持更灵活的云存储扩展(如 S3、FTP 等)。

9. Bug 修复与文档改进

  • 修复了 8.x 版本中的多项边界问题。
  • 官方文档全面更新,包含新特性示例和最佳实践。


总结

Laravel 9.x 聚焦于 底层依赖现代化开发者体验优化性能提升,同时保持向后兼容性。建议结合 官方升级指南 进行迁移。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐