Découpage en services / dao ? - PHP - Programmation
Marsh Posté le 04-12-2009 à 10:07:29
kolbek a écrit : Bonjour, |
Non le concepte de DAO n'a pas sa place dans le PHP puisque le PHP n'est pas en lien directe avec le visiteur, celui-ci ne recevant
que le HTML résultant de différtents critéres et éléments dont efectivement des données issues en locurence de Mysql ou autre.
Mais une structure de type "Data Access Object" n'a rien a faire ici.
Marsh Posté le 06-12-2009 à 20:53:01
Une architecture de type SOA peut très bien être mise en place en PHP, cependant ce n'est pas forcément le meilleur choix. Si ta vue/couche présentation est en HTML, j'aurais plutôt tendance à te conseiller une archi type MVC.
Par contre, si ton client est en JavaScript / GWT / Flex, là il est effectivement judicieux de découper ton appli en services.
Les classes de ta couche DAO pourraient ressembler à ça (utilisons un cas d'école!) :
Code :
|
En gros, tu recrées un mécanisme de mapping objet<->relationnel.
Et dans ton service au-dessus qui va écouter les requêtes HTTP (équivalent à une servlet java), si tu as besoin de faire des opérations sur tes données tu fais juste un truc du style :
$client = Client::recupererClientParId($_POST["idclient"]);
$client->setNom($_POST["nouveaunom"]);
echo $reponse; // au format que comprend ta couche Présentation (XML, JSON, ...)
Et si tu veux encore plus d'abstraction, tu peux mettre ton code purement métier dans une couche distincte entre les 2.
++
Marsh Posté le 24-12-2009 à 16:23:56
FoxLeRenard a écrit : Non le concepte de DAO n'a pas sa place dans le PHP puisque le PHP n'est pas en lien directe avec le visiteur, celui-ci ne recevant |
Le concept de DAO a tout à fait sa place en PHP, il n'y a pas de raisons de ne pas appliquer le modèle Service / DAO / Modèle de données classique Java au PHP.
Les classes de DAOs permettent généralement de ne manipuler qu'un seul type d'entité, leurs opérations sont non-transactionnelles dans la plupart des cas.
Les classes de services sont transactionnelles et peuvent utiliser plusieurs DAOs gérant plusieurs types d'entités, ceci afin d'accomplir des opérations métiers à plus grosse granularité.
Marsh Posté le 24-12-2009 à 16:30:26
D@RKWoodius a écrit :
Par contre, si ton client est en JavaScript / GWT / Flex, là il est effectivement judicieux de découper ton appli en services. |
Désolé de corriger encore mais je ne suis pas d'accord là non plus.
Les architectures SOA n'ont pas vraiment de rapport ici (bien qu'un service SOA pourrait très bien être un service issu du modèle Service / DAO / Modèle de données...).
Aussi, le MVC peut très bien être mixé avec le modèle Service / DAO / Modèle de données.
kolbek, j'ai écrit un petit article récemment su mon blog concernant le développement d'une application PHP / Zend en respectant le modèle Service / DAO / Modèle de données (http://bgaillard.blogspot.com/2009 [...] on-le.html). Je ne sais pas si tout est très bien expliqué donc si tu as des questions n'hésites pas.
Bonne lecture et à très bientôt
Marsh Posté le 03-12-2009 à 23:52:36
Bonjour,
Quelqu'un aurait il un exemple de structure pour un projet php découpé en couches services, dao ?
(comme en java quoi...)
Avec éventuellement un exemple d'une classe service et d'une classe de dao ?
Merci d'avance.
---------------
Mon topic de vente http://forum.hardware.fr/hfr/Achat [...] 9217_1.htm -- Mon Feed-Back : http://forum.hardware.fr/hfr/Achat [...] 0553_1.htm