好的Laravel 8.x 版本引入了多项重要改进和新特性旨在提升开发效率和功能。以下是其主要特性Laravel Jetstream这是一个全新的应用脚手架提供了登录、注册、邮箱验证、双因素认证、会话管理、API 支持通过 Sanctum等功能。基于Tailwind CSS构建并提供了Livewire和Inertia.js两种前端栈选择取代了旧版的laravel/ui认证脚手架。核心认证功能由Laravel Fortify提供支持一个无头认证后端库。模型工厂类重构模型工厂的定义方式完全重构。现在工厂是标准的 PHP 类继承自Illuminate\Database\Eloquent\Factories\Factory。工厂类使用新的Factory::new()方法创建实例状态定义也采用方法链的方式代码更清晰、更面向对象。示例// 定义 class UserFactory extends Factory { public function definition(): array { return [ name $this-faker-name(), email $this-faker-unique()-safeEmail(), ]; } } // 使用 User::factory()-count(5)-create();迁移压缩当项目运行时间较长、迁移文件数量众多时可以将现有迁移文件“压缩”成一个 SQL 文件。执行php artisan schema:dump命令会生成一个schema.sql文件默认在database/schema目录。之后运行php artisan migrate时会优先检查是否存在此 SQL 文件。如果存在且数据库为空则直接执行 SQL 文件加载表结构然后再运行剩余的未被压缩的迁移文件。这大大减少了大型项目运行迁移的时间。任务批处理Laravel 8 新增了对任务批处理的支持。开发者可以提交一批任务然后监听整个批处理的生命周期事件如全部完成、某个任务失败等。使用Bus::batch方法创建批处理use Illuminate\Support\Facades\Bus; Bus::batch([ new ProcessPodcast, new ProcessPodcast, // ... ])-then(function (Batch $batch) { // 所有任务成功完成... })-catch(function (Batch $batch, Throwable $e) { // 批处理中首次检测到任务失败... })-dispatch();速率限制改进对路由速率限制器Rate Limiting进行了重构和增强。提供了更灵活的方式来定义自定义的速率限制逻辑支持多种策略如按用户、IP、自定义键。示例RateLimiter::for(global, function (Request $request) { return Limit::perMinute(1000); }); RateLimiter::for(uploads, function (Request $request) { return $request-user()-vipCustomer ? Limit::none() : Limit::perMinute(10); });路由缓存改进对路由缓存机制 (php artisan route:cache) 进行了优化提高了缓存生成和加载的速度。Eloquent 改进模型类后缀默认情况下Laravel 8 生成的模型类不再有.php后缀如User而不是User.php。这是 PSR-4 自动加载标准的体现。factory方法Eloquent 模型现在有一个静态的factory方法用于配合新的模型工厂见第 2 点简化了模型实例的创建User::factory()-create()。懒集合Eloquent 的cursor方法现在返回一个LazyCollection实例支持 Laravel 集合的大多数方法在处理大量数据时更节省内存。事件监听器优化事件监听器现在支持基于接口或类型的依赖注入。Laravel 会自动解析监听器所需的依赖。时间测试助手新增了Illuminate\Support\Testing\Fakes\EventFake::assertDispatched等方法用于更方便地测试事件是否被触发。Laravel Sail虽然 Sail 在 Laravel 8 中引入但它是一个独立的 Docker 开发环境提供了预配置的容器包含 PHP, MySQL, Redis 等极大简化了本地开发环境的设置。使用sail命令代替artisan命令如sail up,sail artisan migrate。总结 Laravel 8.x 专注于提升开发体验和现代化工具链引入了 Jetstream 作为新的应用起点重构了模型工厂和迁移处理以提高效率并增强了任务调度、速率限制、事件系统、Eloquent 和测试能力。这些特性共同为开发者构建健壮、高效的应用程序提供了更好的支持。