Laravel 8.X 版本引入了多项重要改进,以下是核心特性概述:
1. Jetstream 应用脚手架
采用 Jetstream 作为全新身份验证脚手架,支持 Livewire 或 Inertia.js 前端栈,内置双因素认证、会话管理等功能:
bash
composer require laravel/jetstream
2. 模型工厂类优化
模型工厂转为基于类的语法,支持关联状态和类型提示:
php
// 定义工厂
class UserFactory extends Factory {
public function definition(): array {
return [
'name' => $this->faker->name(),
'email' => $this->faker->unique()->safeEmail(),
];
}
}
// 使用
UserFactory::new()->create();
3. 路由优化
(1) 路由缓存提速
通过 php artisan route:cache 生成的缓存文件体积减少 75%,提升加载速度。
(2) 自定义路由模型绑定
支持在路由中直接声明绑定逻辑:
php
Route::get('/users/{user}', function (User $user) {
return $user;
})->withTrashed(); // 包含软删除记录
4. Eloquent 改进
(1) 批量赋值限制
模型新增 fillable() 与 guarded() 方法替代属性数组:
php
class User extends Model {
protected function fillable() {
return ['name', 'email'];
}
}
(2) 日期转换器
支持自定义 Castable 接口实现类型转换:
php
class User extends Model {
protected $casts = [
'birthday' => DateCast::class,
];
}
5. 测试增强
(1) 测试工厂辅助函数
在测试中直接使用工厂:
php
$user = User::factory()->create();
(2) HTTP 测试断言
新增 assertJsonPath() 等链式断言方法:
php
$response->assertOk()
->assertJsonPath('meta.page', 1);
6. 其他关键更新
- 速率限制器 :通过
RateLimiter类定义自定义限流规则 - 维护模式:支持预渲染维护模式页面
- 事件监听器优化 :支持返回
ShouldQueue接口的监听器
完整特性请参考 Laravel 8 官方文档。