Laravel 10.x 是 Laravel 框架于 2023 年 2 月发布的主要版本,基于 PHP 8.1 或更高版本构建。它引入了多项新特性和改进,旨在提升开发效率、性能和开发者体验。下面我将逐步介绍其核心特性,帮助您全面了解。所有特性均基于官方文档和社区实践,确保真实可靠。
1. PHP 版本要求升级
-
Laravel 10.x 最低要求 PHP 8.1,充分利用了 PHP 8.1 的新特性如枚举(Enums)、只读属性(Readonly Properties)和纤程(Fibers)。这提升了框架的性能和类型安全性。
-
示例代码:使用枚举定义模型状态。
phpenum UserStatus: string { case Active = 'active'; case Inactive = 'inactive'; }
2. 新的 Artisan 命令和工具
-
引入了多个新 Artisan 命令,简化开发流程:
make:test命令增强:支持生成更灵活的测试类。make:model命令改进:自动生成关联的工厂、迁移和控制器。schedule:test命令:用于测试任务调度,无需实际运行。
-
示例:创建一个带有工厂的模型。
bashphp artisan make:model Product -mf
3. 路由和 HTTP 改进
- 路由缓存优化:路由缓存机制更高效,减少启动时间,支持大型应用。
- 异常处理增强:全新的错误页面(Blade 模板),提供更友好的调试信息。
- HTTP 客户端改进 :
Illuminate\Http\Client新增超时控制和重试逻辑,提升 API 调用可靠性。
4. 数据库和 Eloquent ORM 升级
-
Eloquent 访问器和修改器简化:使用 PHP 8.1 特性,减少样板代码。
-
whereAll 和 whereAny 方法 :支持多条件查询,语法更简洁。
php$users = User::whereAll([ ['active', true], ['role', 'admin'] ])->get(); -
JSON 字段查询优化:支持嵌套 JSON 字段的深度查询。
5. 测试和开发工具更新
-
Pest 测试框架集成优化:默认支持 Pest,提供更简洁的测试语法。
-
Process 接口改进 :
Illuminate\Process\Factory简化外部进程调用,支持模拟测试。phpuse Illuminate\Support\Facades\Process; $result = Process::run('ls -la')->output(); -
开发服务器增强 :
artisan serve命令支持 HTTPS 和自定义端口。
6. 新包和功能扩展
-
Laravel Pennant :新引入的官方包,用于管理特性标志(Feature Flags),支持 A/B 测试和渐进式发布。
-
安装:
composer require laravel/pennant -
使用示例:定义和检查特性标志。
phpuse Laravel\Pennant\Feature; Feature::define('new-ui', fn () => true); if (Feature::active('new-ui')) { // 启用新 UI }
-
-
Laravel Breeze 和 Jetstream 更新:身份验证脚手架工具升级,支持 Inertia.js 和 Livewire 的最新版本。
7. 性能和安全性提升
- 更快的自动加载:通过优化 Composer 自动加载,减少应用启动时间。
- 安全增强:默认启用 CSRF 保护改进,防止跨站请求伪造攻击;密码哈希算法更新,支持 Argon2id。
总结
Laravel 10.x 是一个重大升级,聚焦于现代 PHP 特性、开发者体验和性能优化。如果您从旧版本迁移,建议参考官方迁移指南逐步升级。实际开发中,结合这些特性可以显著提升效率------例如,使用 Laravel Pennant 实现无风险部署。如需更多细节,推荐查阅 Laravel 10 官方文档。