Everything Claude Code 的 Laravel 技能体系为开发者提供覆盖全生命周期的自动化工程纪律。它能引导 AI 助手自动生成符合“Controller-Service-Action”分层的架构代码,集成 Sanctum 认证与 Mass Assignment 防御等安全最佳实践,并强制执行以 Pest 为代表的测试驱动开发流程。在交付环节,该体系通过自动化验证循环确保代码质量与安全,同时借助 LaraPlugins.io MCP 服务智能评估第三方包的健康度,从而在 AI 辅助编程场景下,系统性保障 Laravel 项目的可维护性与生产安全。

Laravel 全生命周期开发:架构、安全、Pest TDD 与包健康度评估

使用 AI 编程助手开发 Laravel 项目时,最大的风险不是代码生成速度,而是生成代码的“工程纪律”缺失——架构混乱、安全隐患、测试裸奔、依赖不可控。本文基于 Everything Claude Code 的 Laravel 专业 Skill 体系,提供一套从零到一、覆盖全生命周期的实操指南,确保 AI 生成的代码既高效又可靠。

本指南将串联 Laravel Patterns SkillLaravel Security Skill、Laravel TDD Skill、Laravel Verification Skill 及 Laravel Plugin Discovery Skill 的核心能力,形成完整的开发闭环。

1. 架构先行:落地“Controller-Service-Action”分层

项目启动阶段,应首先建立清晰的代码结构,避免 AI 生成“胖控制器”。laravel-patterns Skill 会自动引导 AI 采用生产级分层模式。

触发场景:当你要求 AI “创建订单模块”或“重构用户管理接口”时,Skill 自动激活。

操作与输出

  1. 目录结构建议:AI 会输出推荐的标准目录。

    app/
    ├── Actions/          # 单一职责操作
    ├── Http/
    │   ├── Controllers/
    │   ├── Requests/     # 表单验证与DTO
    │   └── Resources/    # API响应资源
    ├── Models/
    └── Services/         # 领域业务服务
  2. 代码生成示范:以“创建订单”为例,AI 会生成分层代码。

    • Action(核心业务逻辑)
      final class CreateOrderAction
      {
          public function handle(CreateOrderDTO $data): Order
          {
              // 业务逻辑,如库存检查、金额计算
              return Order::create($data->toArray());
          }
      }
    • Controller(输入输出)
      final class OrdersController extends Controller
      {
          public function store(StoreOrderRequest $request): JsonResponse
          {
              $order = (new CreateOrderAction)->handle($request->toDTO());
              return response()->json(OrderResource::make($order), 201);
          }
      }
  3. 路由与绑定:AI 会建议使用 apiResourcescopedBindings 防止越权。

    Route::middleware('auth:sanctum')->group(function () {
        Route::apiResource('orders', OrdersController::class);
    });

2. 安全加固:构建纵深防御体系

在架构确立后,安全必须同步嵌入。laravel-security Skill 会自动检测并修复常见漏洞。

核心防护点

  • 认证与授权:强制使用 auth:sanctum 中间件,并通过 Policy 或 $this->authorize() 进行权限校验。
    $this->authorize('update', $project); // 在控制器中检查策略
  • Mass Assignment 防御:确保模型正确定义 $fillable 属性,禁止使用 Model::unguard()
  • CSRF 与输入验证:自动生成严格的 FormRequest 验证器。
    public function rules(): array
    {
        return [
            'invoice' => ['required', 'file', 'mimes:pdf', 'max:5120'],
        ];
    }
  • 生产环境加固:检查并设置 APP_DEBUG=falseSESSION_SECURE_COOKIE=true,自动生成安全头中间件(CSP、HSTS)。
  • 敏感数据:对模型敏感字段建议使用 encrypted Cast,并对日志中的敏感信息进行脱敏处理。

3. 质量基石:践行 Pest 测试驱动开发

有了安全的架构,需用测试保障。Laravel TDD Skill 引导 AI 采用测试先行的开发模式,推荐使用 Pest。

TDD 流程

  1. Red(编写失败测试):先让 AI 生成描述功能的测试。
    use App\Models\User;
    use function Pest\Laravel\actingAs;
    
    test('authenticated user can view their profile', function () {
        $user = User::factory()->create();
        actingAs($user)
            ->getJson('/api/user')
            ->assertOk()
            ->assertJsonStructure(['id', 'name', 'email']);
    });
  2. Green(实现最小代码):让 AI 生成控制器或服务代码使测试通过。
  3. Refactor(重构优化):在测试覆盖下,安全地优化代码。

关键实践

  • 工厂模式:使用 User::factory()->state(['role' => 'admin'])->create() 快速生成测试数据。
  • 数据库隔离:测试自动使用 RefreshDatabase 和 SQLite 内存数据库。
  • Fakes:自动注入 Queue::fake(), Mail::fake() 等,隔离外部依赖。
  • 覆盖率目标:Skill 默认要求 80% 以上的单元与功能测试覆盖率。

4. 发布闸门:执行自动化验证循环

代码完成,并非万事大吉。Laravel Verification Skill 提供一站式发布前检查。

验证流程(可串联为 CI/CD Pipeline)

  1. 环境与依赖composer validate, composer dump-autoload -o
  2. 代码质量vendor/bin/pint --test(风格), vendor/bin/phpstan analyse(静态分析)。
  3. 测试与覆盖率php artisan test, XDEBUG_MODE=coverage php artisan test --coverage
  4. 安全扫描composer audit(依赖漏洞扫描)。
  5. 数据库迁移php artisan migrate --pretend(预演检查)。
  6. 生产缓存php artisan config:cache, php artisan route:cache
  7. 健康检查php artisan schedule:list, php artisan queue:failed

此流程能在 PR、合并或部署前自动阻断不达标变更。

5. 智能选型:评估第三方包健康度

新项目或升级依赖时,需要谨慎选择第三方包。Laravel Plugin Discovery Skill 通过集成 LaraPlugins.io 的 MCP 服务实现智能评估。

使用流程

  1. 提出需求:向 AI 提问,如 “推荐 Laravel 12 兼容的健康权限包”。
  2. 自动检索:Skill 调用 SearchPluginTool,可按关键词、健康度(Healthy/Medium/Unhealthy)、Laravel 版本、PHP 版本筛选。
    SearchPluginTool({
      text_search: "permission",
      laravel_compatibility: "12",
      health_score: "Healthy"
    })
  3. 详情评估:对候选包调用 GetPluginDetailsTool,获取维护活跃度、版本历史、厂商信誉和风险分。
  4. 决策建议:AI 会输出结构化报告,建议只采用健康度为 “Healthy” 且与项目版本兼容的包,优先选择知名厂商。

配置:在 ~/.claude.json 中添加 MCP 服务配置即可免费使用:

"laraplugins": {
  "type": "http",
  "url": "https://laraplugins.io/mcp/plugins"
}

6. 协作流水线:Skill 与 Agent 的联动

单一的 Skill 能力有限,将它们与特定的 Agent 组合,能形成强大的自动化流水线。

  • 开发阶段laravel-patterns + laravel-security Skill 生成代码。
  • 测试阶段:Laravel TDD Skill + TDD Guide Agent 确保测试先行与覆盖率。
  • 审查阶段Code Reviewer Agent 审查代码质量与安全漏洞。
  • 交付前:Laravel Verification Skill + Verification Loop Skill 执行全链路检查。
  • 依赖管理laravel-plugin-discovery Skill 定期扫描依赖健康度。

通过 Hooks 自动化体系,这些步骤可以在代码提交、PR 创建等事件中自动触发。

FAQ

Q: 这些 Skill 需要手动一个个配置吗? A: 不需要。在 Everything Claude Code 体系中,当你描述开发任务时,相关的 Skill 会根据场景自动激活。你只需专注于描述业务需求。

Q: 对于已经存在的 Laravel 项目,如何集成这些 Skill? A: 可以在 AI 助手对话中启用相关 Skill,AI 会识别现有代码结构,并建议重构以符合最佳实践,或为现有功能补充测试和安全检查。这是一个渐进式改进的过程。

Q: 这套流程会显著降低开发速度吗? A: 短期看,遵循工程纪律会比无序编码稍慢。但中长期看,它能大幅减少技术债务、Bug 修复和安全事件的成本,显著提升项目的可维护性和交付信心,最终提高整体研发效率。