Loading...
Loading...
Design Laravel app architecture with services, repositories, actions, and clean code patterns. Use when structuring projects, creating services, implementing DI, or organizing code layers.
npx skill4agent add fusengine/agents laravel-architectureTeamCreateapp/
├── Actions/ # Single-purpose action classes
├── Contracts/ # Interfaces (DI)
├── DTOs/ # Data transfer objects
├── Enums/ # PHP 8.1+ enums
├── Events/ # Domain events
├── Http/
│ ├── Controllers/ # Thin controllers
│ ├── Middleware/ # Request filters
│ ├── Requests/ # Form validation
│ └── Resources/ # API transformations
├── Jobs/ # Queued jobs
├── Listeners/ # Event handlers
├── Models/ # Eloquent models only
├── Policies/ # Authorization
├── Providers/ # Service registration
├── Repositories/ # Data access layer
└── Services/ # Business logic| Reference | When to Use |
|---|---|
| container.md | Dependency injection, binding, resolution |
| providers.md | Service registration, bootstrapping |
| facades.md | Static proxies, real-time facades |
| contracts.md | Interfaces, loose coupling |
| structure.md | Directory organization |
| lifecycle.md | Request handling flow |
| Reference | When to Use |
|---|---|
| configuration.md | Environment, config files |
| installation.md | New project setup |
| upgrade.md | Version upgrades, breaking changes |
| releases.md | Release notes, versioning |
| Reference | When to Use |
|---|---|
| sail.md | Docker development |
| valet.md | macOS native development |
| homestead.md | Vagrant (legacy) |
| octane.md | High-performance servers |
| Reference | When to Use |
|---|---|
| artisan.md | CLI commands, custom commands |
| helpers.md | Global helper functions |
| filesystem.md | File storage, S3, local |
| processes.md | Shell command execution |
| context.md | Request-scoped data sharing |
| Reference | When to Use |
|---|---|
| pennant.md | Feature flags |
| mcp.md | Model Context Protocol |
| concurrency.md | Parallel execution |
| Reference | When to Use |
|---|---|
| deployment.md | Production deployment |
| envoy.md | SSH task automation |
| logging.md | Log channels, formatting |
| errors.md | Exception handling |
| packages.md | Creating packages |
| Template | Purpose |
|---|---|
| UserService.php.md | Service + repository pattern |
| AppServiceProvider.php.md | DI bindings, bootstrapping |
| ArtisanCommand.php.md | CLI commands, signatures, I/O |
| McpServer.php.md | MCP servers, tools, resources, prompts |
| PennantFeature.php.md | Feature flags, A/B testing |
| Envoy.blade.php.md | SSH deployment automation |
| sail-config.md | Docker Sail configuration |
| octane-config.md | FrankenPHP, Swoole, RoadRunner |
| Feature | Reference | Priority |
|---|---|---|
| Service Container | container.md | High |
| Service Providers | providers.md | High |
| Directory Structure | structure.md | High |
| Configuration | configuration.md | High |
| Installation | installation.md | High |
| Octane (Performance) | octane.md | High |
| Sail (Docker) | sail.md | High |
| Artisan CLI | artisan.md | Medium |
| Deployment | deployment.md | Medium |
| Envoy (SSH) | envoy.md | Medium |
| Facades | facades.md | Medium |
| Contracts | contracts.md | Medium |
| Valet (macOS) | valet.md | Medium |
| Upgrade Guide | upgrade.md | Medium |
| Logging | logging.md | Medium |
| Errors | errors.md | Medium |
| Lifecycle | lifecycle.md | Medium |
| Filesystem | filesystem.md | Medium |
| Helpers | helpers.md | Low |
| Pennant (Flags) | pennant.md | Low |
| Context | context.md | Low |
| Processes | processes.md | Low |
| Concurrency | concurrency.md | Low |
| MCP | mcp.md | Low |
| Packages | packages.md | Low |
| Releases | releases.md | Low |
| Homestead | homestead.md | Low |
public function __construct(
private readonly UserServiceInterface $userService,
) {}public function register(): void
{
$this->app->bind(UserServiceInterface::class, UserService::class);
$this->app->singleton(CacheService::class);
}php artisan make:provider CustomServiceProvider
php artisan make:command ProcessOrders$debug = env('APP_DEBUG', false);
$config = config('app.name');