--- description: "PHP patterns extending common rules" globs: ["**/*.php", "**/composer.json"] alwaysApply: false --- # PHP Patterns > This file extends the common patterns rule with PHP specific content. ## Thin Controllers, Explicit Services - Keep controllers focused on transport: auth, validation, serialization, status codes. - Move business rules into application/domain services that are easy to test without HTTP bootstrapping. ## DTOs and Value Objects - Replace shape-heavy associative arrays with DTOs for requests, commands, and external API payloads. - Use value objects for money, identifiers, and constrained concepts. ## Dependency Injection - Depend on interfaces or narrow service contracts, not framework globals. - Pass collaborators through constructors so services are testable without service-locator lookups.