Files
everything-claude-code/rules/php/patterns.md
2026-03-10 21:10:26 -07:00

1.1 KiB

paths
paths
**/*.php
**/composer.json

PHP Patterns

This file extends common/patterns.md 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, date ranges, and other 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.

Boundaries

  • Isolate ORM models from domain decisions when the model layer is doing more than persistence.
  • Wrap third-party SDKs behind small adapters so the rest of the codebase depends on your contract, not theirs.

Reference

See skill: api-design for endpoint conventions and response-shape guidance.