Bonjour,
Je suis prof en BTS SIO et je me prépare à enseigner le PHP objet en 2ème année. Je me pose des questions sur l'architecture PHP standard que je dois présenter à mes étudiants.
Avant d'être prof, j'ai bossé plusieurs années comme ingénieur dans le monde Java/JEE (à l'époque ça s'appelait J2EE...). Je suis donc habitué à une approche de type Model-Driven Design où on construit un modèle du domaine constitué de classes qui encapsulent les données et la logique métier. Ces classes sont indépendantes de toute technologie de persistance.
Voici un exemple de modèle du domaine dans un contexte simple (serveur de quizz).
L'architecture de mon application est basée sur un modèle en couches. L'accès aux données métier persistantes est fait uniquement dans la couche Persistance (qui est donc une implémentation du pattern Data Access Layer). Si les données métier sont stockées dans un SGBDR, cette couche encapsule les requêtes SQL.
Mon problème est que quand je me documente sur l'architecture en PHP, je ne retrouve pas ce genre de solution. Que ce soit sur des exemples simples de POO ou dans le cadre des classes Modèle d'une approche MVC, les classes métier encapsulent systématiquement les méthodes d'accès aux données persistantes (requêtes SQL, XML, etc).
Si je ne me trompe pas, ces solutions sont une implémentation du pattern Active Record. Il y a quelques années, j'avais lu des critiques qui déconseillaient cette solution.
D'où ma question : l'architecture présentée plus haut est-elle transposable en PHP ? (j'imagine que oui, mais la question sous-entend : est-ce une bonne idée ?). Si non, quelle architecture présenter aux étudiants : un MVC classique ?
Merci d'avance pour vos avis.
Partager