Replacing a homegrown database layer with DBAL
How waaseyaa migrated from a homegrown PdoDatabase to Doctrine DBAL across 67 commits — and how all three applications upgraded without breaking.
How waaseyaa migrated from a homegrown PdoDatabase to Doctrine DBAL across 67 commits — and how all three applications upgraded without breaking.
How waaseyaa’s JSON:API layer works — ResourceSerializer, SchemaPresenter, and how Tier 3 specs let a new session pick up mid-feature without re-explaining the whole contract.
How waaseyaa’s AccessPolicyInterface implements deny-unless-granted semantics with field-level access control — and how GitHub milestones kept it from scope-creeping.
How Claudriel’s temporal subsystem pins time per request, resolves timezones from context, and detects clock drift before it corrupts AI reasoning.
How waaseyaa’s EntityInterface, ContentEntityBase, and field system work — and how the entity-system specialist skill made cross-session development possible.
A skill set that governs framework-app co-development across three repos: enforcing patterns, auditing divergence, and extracting shared code.
What waaseyaa is, why it exists, and how planning with GitHub issues before coding changes the dynamic of building complex software with AI.
Learn how PSR-20’s Clock interface makes time-dependent code testable and predictable by abstracting PHP’s time functions.
Discover PSR-18’s HTTP client interface for making standardized HTTP requests, enabling swappable HTTP client implementations in PHP.
Learn how PSR-17’s HTTP factory interfaces decouple your code from specific PSR-7 implementations, enabling testable and portable HTTP applications.