以下是 Laravel 9.x 的主要特性,按技术模块分类说明:
一、PHP 版本要求
- 基础要求:PHP 8.0 或更高版本
- 兼容库:新增
symfony/consolev6.0、symfony/http-foundationv6.0 依赖
二、核心框架改进
1. 路由系统优化
-
隐式控制器路由绑定
支持自动映射控制器方法:php// routes/web.php Route::controller(PostController::class)->group(function() { Route::get('/posts/{id}', 'show'); Route::post('/posts', 'store'); }); -
路由模型绑定增强
支持自定义键名解析(如slug代替主键):phpRoute::get('/posts/{post:slug}', function (Post $post) { return view('post.show', ['post' => $post]); });
2. Eloquent ORM
-
动态访问器优化
支持类似get{Attribute}Attribute()的动态方法扩展:phppublic function getNameAttribute($value) { return ucwords($value); } -
模型类型转换
新增AsEnumCollection等类似转换器:phpprotected $casts = [ 'options' => AsEnumCollection::class.':'.OptionEnum::class, ];
三、新组件集成
1. Scout 数据库引擎
引入异步索引更新:
php
use Laravel\Scout\EngineManager;
$engine = app(EngineManager::class)->engine();
$engine->updateAsync(Post::search('Laravel 9'));
2. Flysystem v3 适配
支持云存储流式操作:
php
Storage::disk('s3')->writeStream(
'file.zip',
Storage::disk('local')->readStream('local-file.zip')
);
四、开发工具链
1. 测试套件升级
-
默认集成
PHPUnit v9.3+ -
新增
Artisan test命令替代phpunit
支持并行测试:php artisan test --parallel
2. 前端工具改进
-
Vite 替代 Webpack 作为默认构建工具:
jsimport { defineConfig } from 'vite'; export default defineConfig({ ... }); -
内置
@viteBlade 指令:blade@vite(['resources/css/app.css', 'resources/js/app.js'])
五、新功能摘要
| 功能模块 | 特性描述 |
|---|---|
| 异常处理器 | 增强 HTML 错误页的调试信息展示 |
| 时间辅助工具 | 新增 Carbon v2 的本地化扩展 |
| 队列监听器 | 支持 php artisan queue:monitor 实时监控 |
| 密码哈希算法 | 安全替换默认 Bcrypt 为非确定性哈希机制 |
六、废弃功能清单
markdown
- Route::home() 方法移除
- Illuminate/Foundation/Testing/TestResponse 弃用(改用 TestResponse)
- 字符串处理助手函数 str_*() 全部标记为弃用
升级建议:执行
composer update后,通过以下命令检测兼容性:
php artisan code:analyse --report=unused