Laravel 8.x核心特性全面解析

Laravel 8.x 于2020年9月发布,引入了多项重要改进,以下是核心特性详解:

1. Laravel Jetstream

  • 现代化应用脚手架:替代原有认证脚手架

  • 集成技术栈

    php 复制代码
    // 安装命令示例
    composer require laravel/jetstream
    php artisan jetstream:install livewire
  • 支持 LivewireInertia.js 两种前端栈

  • 内置双因素认证、会话管理、API支持

2. 模型工厂类重构

php 复制代码
// 旧版工厂 (基于函数)
$factory->define(App\User::class, function (Faker $faker) {...});

// 新版工厂 (基于类)
class UserFactory extends Factory {
    public function definition() {
        return [
            'name' => $this->faker->name(),
            'email' => $this->faker->unique()->safeEmail(),
        ];
    }
}

3. 迁移压缩

解决迁移文件过多问题:

bash 复制代码
php artisan schema:dump
# 生成 schema/migrations.sql
  • 执行新迁移时优先读取SQL文件
  • 保留未执行迁移的灵活性

4. 任务批处理

php 复制代码
use Illuminate\Bus\Batch;
use App\Jobs\ProcessPodcast;

Batch::dispatch([
    new ProcessPodcast(1),
    new ProcessPodcast(2),
])->then(function (Batch $batch) {
    // 批处理完成回调
})->catch(function (Batch $batch, Throwable $e) {
    // 异常处理
});

5. 路由命名空间调整

  • 移除 RouteServiceProvider 中的默认控制器命名空间
  • 需显式指定完整类名:
php 复制代码
// 原方式
Route::get('/user', 'UserController@index');

// 新方式
use App\Http\Controllers\UserController;
Route::get('/user', [UserController::class, 'index']);

6. 事件监听器优化

  • 自动发现事件监听器
  • 无需在 EventServiceProvider 中手动注册
  • 约定:Listeners 目录下文件自动关联同名事件

7. 速率限制增强

php 复制代码
Route::middleware(['throttle:api'])->group(function () {
    Route::get('/profile', function () {
        // 每分钟60次请求限制
    });
});
  • 支持Redis驱动
  • 自定义限制策略:RateLimiter::for()

8. Blade组件改进

  • 动态组件渲染:
blade 复制代码
<x-dynamic-component :component="$componentName" class="mt-4" />
  • 属性合并:自动合并class属性
  • 内联视图组件:@component 语法简化

9. 时间测试助手

php 复制代码
// 冻结时间
$this->travelTo(now()->subDays(10));

// 时间前进
$this->travel(5)->days();

10. 其他改进

  • 队列 retryUntil() 方法弃用 → 改用 backoff() 属性
  • artisan serve 命令支持热重载
  • assertDeleted() 更名 → assertModelMissing()
  • 默认启用 tailwindcss 替代Bootstrap

升级建议 :使用官方升级工具 laravel-shift 进行平滑迁移,特别注意路由和控制器的命名空间调整。

相关推荐
DigitalOcean6 天前
Laravel 开发者已在 DigitalOcean 上开通超过 10 万台服务器
前端·laravel
两个人的幸福8 天前
Windows 桌面应用自研 PHP 队列(下):完整代码与六大工程化优化
php
BingoGo10 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack10 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户30745969820711 天前
PHP 扩展——从入门到理解
php
鹏仔先生12 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
云水一下12 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
xingpanvip12 天前
星盘接口开发文档:本命盘接口指南
android·开发语言·css·php·lua
酉鬼女又兒12 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php
dog25012 天前
不要再继续优化 TCP
网络协议·tcp/ip·php