symfony-yoandev-doctrine
Doctrine
Tier: core — an entity, a repository and a reviewed migration are not optional.
SELECT NEWprojections are the on-demand part: reach for one when a list hydrates more than it shows.
Entities, relations, repositories, and migrations that survive contact with real data.
Everything here follows from one decision: entities are dumb. They are the maker shape — private properties, getters and setters, mapping attributes, nothing else. That choice has consequences all the way up the stack, so it is worth stating the consequence before the rules.
vendor/ is the source of truth over anything written here. This skill was verified
against Doctrine ORM 3.6, DBAL 4.4, doctrine-bundle 3.3 and Symfony 8.1; several APIs
that older blog posts still show no longer exist.