Agent Skills: Laravel Architecture

Enforce core architectural standards for scalable Laravel applications. Use when structuring controllers, service layers, action classes, Form Requests, or Service Container bindings in Laravel projects. (triggers: app/Http/Controllers/**/*.php, routes/*.php, controller, service, action, request, container)

UncategorizedID: hoangnguyen0403/agent-skills-standard/laravel-architecture

Install this agent skill to your local

pnpm dlx add-skill https://github.com/HoangNguyen0403/agent-skills-standard/tree/HEAD/skills/laravel/laravel-architecture

Skill Files

Browse the full folder contents for laravel-architecture.

Download Skill

Loading file tree…

skills/laravel/laravel-architecture/SKILL.md

Skill Metadata

Name
laravel-architecture
Description
"Enforce core architectural standards for scalable Laravel applications. Use when structuring controllers, service layers, action classes, Form Requests, or Service Container bindings in Laravel projects. (triggers: app/Http/Controllers/**/*.php, routes/*.php, controller, service, action, request, container)"

Laravel Architecture

Priority: P0 (CRITICAL)

Structure

See project structure for the recommended directory layout.

Workflow

  1. Create Form Request for validation (php artisan make:request StoreUserRequest).
  2. Create Action class with a single handle() method for the use case.
  3. Inject Action into controller via constructor DI.
  4. Bind interfaces in AppServiceProvider for swappable implementations.

Controller Pattern

See implementation examples for slim controller, action class, and service container binding patterns.

Validation

  • Use Form Requests with authorize() and rules() methods.
  • Call $request->validated() in the controller for mass assignment.
  • Never use inline $request->validate().

Anti-Patterns

  • No logic in Controllers: Move to Services or Action classes.
  • No manual instantiation: Use Service Container via DI.
  • No inline $request->validate(): Favor Form Request classes.
  • No excessive global helpers: Use class-based logic instead.

References