Dans la plupart des applications que j'ai écrites, il y a généralement deux types différents d'accès aux données. La première concerne les opérations transactionnelles: récupérer des objets spécifiques à partir du magasin de données, les modifier et les sauvegarder. J'ai trouvé un ORM solide pour être la meilleure solution ici. N'essayez pas d'écrire le vôtre (aussi intéressant que cela puisse être).
L'autre type commun d'accès aux données est le reporting. Les ORM ne sont pas la meilleure solution ici, c'est pourquoi je vais généralement avec un système qui utilise des requêtes SQL personnalisées. Plain ol 'AOP fonctionne bien ici. Vous pouvez créer un objet de valeur spéciale juste pour ce rapport et demander à la requête PDO d'extraire les valeurs dans l'objet. Les rapports doivent être rapides et leur construction à l'aide d'une couche ORM est généralement trop lente et fastidieuse.