Module Map
| Module | Path | Purpose |
|---|---|---|
| EntityManager | src/Modules/EntityManager/ |
UnitOfWork, IdentityMap, hydrators, lifecycle callbacks, lazy-loading proxies |
| QueryBuilder | src/Modules/QueryBuilder/ |
Fluent SQL builder, WHERE clauses, keyset pagination, soft-delete filter |
| Database | src/Modules/Database/ |
Schema reader, type mappers per DB, schema comparator (diff engine) |
| Repository | src/Modules/Repository/ |
AbstractRepository, EntityRepository, criteria pattern |
| Migrations | src/Modules/Migrations/ |
Schema diff → migration SQL (MySQL & PostgreSQL generators) |
| Generators | src/Modules/Generators/ |
ID strategies: UUID v4/v7, ULID, AutoIncrement, Serial, Prefixed |
| Attributes | src/Attributes/ |
All PHP attributes + reflection wrappers (ReflectionEntity, ReflectionProperty, ReflectionRelation) |
| Schema | src/Schema/ |
EntityMetadata, EntityMetadataRegistry, naming conventions |
| Utils | src/Utils/ |
TypeRegistry, type converters (bool↔TINYINT, DateTime↔DATETIME, etc.) |
| Commands | src/Commands/ |
Symfony Console: DiffCommand, InitCommand, MigrateCommand, ValidateCommand, WarmMetadataCacheCommand |
Schema comparator (diff engine)
Section titled “Schema comparator (diff engine)”DatabaseSchemaComparator in src/Modules/Database/SchemaComparator/ compares live DB schema against entity attributes, using per-concern comparators:
ColumnComparator— column type/nullability/default diffsEntityTableComparator— table-level diffsForeignKeyComparator,IndexComparator,MappingTableComparator
Output feeds MigrateCommand and DiffCommand.
Commands
Section titled “Commands”bin/console articulate:warm-metadata-cacheRun articulate:warm-metadata-cache as a deploy step to discover every mapped entity class — including each slice of a shared table — and build its metadata ahead of the first request, instead of paying that cost on a cold cache.
Where new things go
Section titled “Where new things go”| Adding… | Goes in… |
|---|---|
| New entity mapping attribute | src/Attributes/ |
| New DB type converter | src/Utils/ |
| New hydration strategy | src/Modules/EntityManager/Hydrators/ |
| New query feature | src/Modules/QueryBuilder/ |
| New schema diff concern | src/Modules/Database/SchemaComparator/ |
| New ID generation strategy | src/Modules/Generators/ |
| New CLI command | src/Commands/ |
| New test for EntityManager | tests/Modules/EntityManager/ |