好的,以下是 Laravel 10.x 版本的主要特性概述:
1. PHP 8.1 最低要求
Laravel 10.x 要求 PHP 8.1 或更高版本,不再支持 PHP 8.0 及以下版本。开发者需升级服务器环境以满足要求。
2. 原生类型提示
框架核心及生成的代码中大量引入了原生类型提示(Native Type Declarations),包括:
- 方法参数类型(如
string $name) - 返回值类型(如
: bool) - 属性类型(如
protected string $table)
这提升了代码的可读性和静态分析工具的准确性。
3. 进程交互(Process Interaction)
新增 Process Facade 和 Illuminate\Process\Pool,用于简化系统命令的执行与管理:
php
use Illuminate\Support\Facades\Process;
$result = Process::run('ls -la');
echo $result->output();
支持并发任务池:
php
use Illuminate\Process\Pool;
Process::pool(fn (Pool $pool) => [
$pool->command('command1'),
$pool->command('command2'),
])->start();
4. 测试套件增强
新的测试辅助工具
-
TestView类提供更直观的视图测试:php$view = $this->view('welcome', ['name' => 'Taylor']); $view->assertSee('Taylor'); -
assertJsonPath支持嵌套 JSON 验证:php$response->assertJsonPath('user.email', 'taylor@example.com');
5. Artisan 命令改进
新命令
make:model --pest生成 Pest 测试文件make:controller --singleton创建单例控制器session:status检查 Session 驱动状态
输出优化
命令行输出采用新的 Symfony Console 样式,支持表格、进度条等富文本渲染。
6. 路由验证改进
路由参数验证支持更简洁的语法:
php
Route::get('/user/{id}', function ($id) {
// ...
})->whereNumber('id'); // 替代 ->where('id', '[0-9]+')
支持的内置规则包括:whereNumber、whereAlpha、whereUuid 等。
7. 弃用功能移除
移除了 Laravel 9.x 中标记为废弃的功能,例如:
$dates属性(改用$casts)assertSentTo测试方法(改用assertSent)faker实例的unique()链式调用
8. 其他更新
- Mailer 改进 :支持自定义回执地址(
returnPath) - 队列监控 :新增
Queue:monitor命令监听指定队列 - 脚手架优化 :
make:model自动生成Factory和Seeder
升级建议
升级前需检查项目依赖是否兼容 PHP 8.1+,并使用 composer update 更新包。推荐使用官方提供的 Laravel Shift 自动化升级工具。
如需进一步了解具体细节,可查阅 Laravel 10.x 官方文档。