Contexte
Un ORM maison basé uniquement sur le pattern Data Mapper, pensé pour PostgreSQL comme SGBD principal avec dégradations contrôlées pour MySQL et SQLite.
Stack & techniques
- Langage : PHP 8.4
- Paradigme : Data Mapper, SRP, TDD
- Tests : PHPUnit
- Base cible : PostgreSQL (first-class)
Points clés
- QueryBuilder modulaire (Where, Join, Order, Limit, etc.).
- Génération SQL spécifique au dialecte (PG/MySQL/SQLite).
- Système de migrations intégré.
- Roadmap structurée : MVP → CRUD solide → production.
Exemple
$select = (new SelectQuery('users'))
->setWhere(WhereDefinition::eq('status', 'active'))
->setOrderBy(OrderByDefinition::asc('created_at'))
->setLimit(50);
// $select->toSql($dialect)