--- name: core-php description: Use when creating PHP modules, services, or actions in core-* packages. --- # PHP Framework Patterns Host UK PHP modules follow strict conventions. Use `core php` commands. ## Module Structure ``` core-{name}/ ├── src/ │ ├── Core/ # Namespace: Core\{Name} │ │ ├── Boot.php # Module bootstrap (listens to lifecycle events) │ │ ├── Actions/ # Single-purpose business logic │ │ └── Models/ # Eloquent models │ └── Mod/ # Namespace: Core\Mod\{Name} (optional extensions) ├── resources/views/ # Blade templates ├── routes/ # Route definitions ├── database/migrations/ # Migrations ├── tests/ # Pest tests └── composer.json ``` ## Boot Class Pattern ```php 'onWebRoutes', AdminPanelBooting::class => ['onAdmin', 10], // With priority ]; public function onWebRoutes(WebRoutesRegistering $event): void { $event->router->middleware('web')->group(__DIR__ . '/../routes/web.php'); } public function onAdmin(AdminPanelBooting $event): void { $event->panel->resources([...]); } } ``` ## Action Pattern ```php $user->id, ...$data, ]); } } // Usage: CreateThing::run($user, $validated); ``` ## Multi-Tenant Models ```php