agentsclimarketplace

Laravel clean architecture

Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/laravel-clean-architecture

🧠 The right skill, one API call. AI agent skills registry with token-efficient skill resolution. 5,000+ skills from 500+ top repos.

Install
npx -y skills add ComeOnOliver/skillshub --skill laravel-clean-architecture

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

Expert patterns for DDD, DTOs, and Ports & Adapters in Laravel. Use when applying Domain-Driven Design, DTOs, or ports-and-adapters patterns in Laravel. (triggers: app/Domains/**/*.php, app/Providers/*.php, domain, dto, repository, contract, adapter)

SKILL.md

2.5 KB, 517 tokens by cl100k_base, as published. Nobody here has run it

Laravel Clean Architecture

Priority: P1 (HIGH)

Structure

app/
β”œβ”€β”€ Domains/            # Logic grouped by business domain
β”‚   └── {Domain}/
β”‚       β”œβ”€β”€ Actions/    # Single use-case logic
β”‚       β”œβ”€β”€ DTOs/       # Immutable data structures
β”‚       └── Contracts/  # Interfaces for decoupling
└── Providers/          # Dependency bindings

Implementation Guidelines

Domain-Driven Design (DDD)

  • Grouping: Organize code in app/Domains/Order/{Actions,DTOs,Contracts}/. Group by business domain (User, Order, Payment) β€” not by type (Controllers, Models).
  • Core Models: Keep standard Eloquent models in app/Models/.
  • Separation: Never put Eloquent queries in controllers; delegate to Action classes for use-case logic.

Data Transfer Objects (DTOs)

  • Immutability: Create typed readonly DTOs:
    readonly class OrderData {
        public function __construct(
            public readonly string $title,
            public readonly int $amount
        ) {}
    }
    readonly class CreateOrderData {
        public function __construct(
            public readonly string $customerId,
            public readonly int $amount
        ) {}
    }
    
    Immutable by default in PHP 8.1+. DTOs cross boundaries β€” pass between layers instead of raw arrays or Eloquent models. No raw arrays between layers.

Repository Pattern & Decoupling

  • Interfaces: Create Contracts/OrderRepository interface and implement EloquentOrderRepository.
  • Binding: Bind interfaces to implementations in AppServiceProvider via $this->app->bind(OrderRepository::class, EloquentOrderRepository::class).
  • Usage: Inject interfaces into your actions/services.
  • Layer Flow: Controller β†’ Action β†’ Repository Interface β†’ Eloquent. DTOs cross boundaries at every layer transition.

Anti-Patterns

  • No Eloquent in Controllers: Bridge layers with DTOs and Actions.
  • No raw arrays across layers: Use typed readonly DTOs.
  • No God Services: Break into single-responsibility Actions.
  • No concrete dependencies: Depend on Interfaces, not implementations.

References

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 327,069. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.