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)

Liens