Page 1 sur 1

architecture de la couche Coordination

Posté : 19 nov. 2008, 16:16
par kaljerhom
En Java (et oui je sais désolé mais c'est ma seule base de référence), on peut utiliser ce qu'on appelle un controller (en fait une servlet) qui récupère les données du formulaire d'une page, traite les entrées et envoie une réponse (affichage d'une nouvelle page ou de la même etc...).
Quelle type d'architecture existe-il en PHP5 pour faire quelque chose de plus ou moins équivalent?
Je veux dire que le code qui controle les actions utilisateurs ne soient pas pas au même endroit que le code de présentation/affichage?

Mon application est séparée en couche, un répertoire persistence, un service, un coordination et un presentation.
En fait je cherche donc comment organiser mes repertoire presentation et coordination comme indiqué ci-dessus.

Ceci permet notemment de n'avoir qu'un seul point d'entrer dans l'application côté utilisateur, cette fameuse classe Coordination.

Merci d'avance pour vos réponse.


********Edition le 20/11/2008 à 13h

J'ai pensé à ceci pour pallier à l'absence de JSP/Servlet, pouvez vous me dire si c'est interessant ou s'il y a bcp mieux a faire (best practice?).
Peut on faire dans la meme idée mais en restant objet?

Donc je n'utilise pas de classe dans ma couche controle mais des scripts simples.
J'ai un script Controller.php qui est le point d'entrée de tous les formulaires du site.
Ce script Controller, grâce à un paramètre hidden "action" dans chacun de mes formulaires, test donc cette valeur et on peut ainsi savoir d'ou vient le formulaire et pour quelle action il a été envoyé.
Suivant la valeur de ce paramètre le script Controller traite les info en entrée et envoi une réponse.
Comme mon Controller n'est pas une Servlet il ne peut renvoyé un HttpServletResponse et donc au lieu d'envoyer une réponse, j'inclu ce controller dans mes scripts d'affichage à chaque fois qu'un formulaire peut etre envoyé.
Ce qui me permet de "simuler " une redirection.
Sachant que les dits formulaire ne sont pas écrit dans mes pages de présentation mais bien dans des sous parties de mon script Controller.

Je ne sais pas si c'est clair?
Qu'en pensez-vous?
MErci :D

Posté : 20 nov. 2008, 15:35
par Hywan
Hey :),

Tu parles d'une architecture n-tiers, qui peut s'instancier à l'aide d'un modèle MVC (Modèle-Vue-Contrôleur).

Plusieurs frameworks proposent des modèles MVC plus ou moins performants. Par exemple : Zend Framework, Symfony, Hoa etc. À toi de regarder, de comparer et de choisir, car chacun à ses particularités, avantages, inconvénients etc. :).

Posté : 20 nov. 2008, 16:25
par kaljerhom
Hey :) ,

Le truc c'est que je voudrais le faire moi-même. :roll:
Pas par un framework. :oops:

Posté : 20 nov. 2008, 16:31
par Hywan
Bah regarde comment les autres ont fait, comprend, apprend, et refait à ta sauce.
Sinon, regarde la théorie du modèle MVC et des architectures n-tiers afin de mieux comprendre les mécanismes. Il existe suffisamment de ressources sur Internet pour qu'on ne te l'explique pas ici (d'autant que tes questions ne sont pas assez précises, on risque de répondre à côté après y avoir passé 5h).
En revanche, les questions sont les bienvenues :).

Posté : 20 nov. 2008, 16:34
par kaljerhom
Bah regarde comment les autres ont fait, comprend, apprend, et refait à ta sauce.
Sinon, regarde la théorie du modèle MVC et des architectures n-tiers afin de mieux comprendre les mécanismes. Il existe suffisamment de ressources sur Internet pour qu'on ne te l'explique pas ici (d'autant que tes questions ne sont pas assez précises, on risque de répondre à côté après y avoir passé 5h).
En revanche, les questions sont les bienvenues :).
Peux tu alors me donner quelques liens ou je pourrais voir ce genre d'architecture?
Et que penses tu de l'idée que j'ai mise?

Posté : 20 nov. 2008, 16:46
par Hywan
Pour bien comprendre les concepts des architectures n-tiers, j'avais écris un annexe dans le manuel de Hoa : Annexe. Introduction à l'architecture n-tiers. Sinon, j'avais regardé des articles sur le manuel de Cocoa (framework de Mac OS X) : Introduction to Cocoa Application Tutorial. Il existe sûrement des articles sur Developpez.com, et rien que Wikipédia fournit des exemples et liens intéressants.

Posté : 08 déc. 2008, 18:32
par kaljerhom
http://www.phpmvc.net/docs-tr/fr/guides ... phpmvc-101

Je viens de lire ceci (un peu compliqué).
En effet, je comprend un peu l'incompréhension de ta part.
Car avec PHP par de serveur d'application (qui gère les servlet sous J2EE) ainsi le framework propose de refaire ce boulot pour PHP, chose que je ne pourrais pas refaire moi meme (trop compliqué).

Du coup il faut que je trouve une manière détournée pour arriver au même résultat, et surtout plus simple.
Je vois aussi d'un coup la différence entre le PHP amateur et le PHP pro, chose que je crois comprendre il ne faut pas confondre.

Du coup, je suis bien embeté, vu que je ne compte pas utiliser de framework pour ce projet.
Je voudrais faire les choses moi meme.

Posté : 08 déc. 2008, 18:46
par Hywan
Oui, les « pro » sont plus « pro » que les moins « pro ». Belle remarque ;-).

Sinon, je ne comprends pas quand tu dis :
Car avec PHP par de serveur d'application (qui gère les servlet sous J2EE) ainsi le framework propose de refaire ce boulot pour PHP, chose que je ne pourrais pas refaire moi meme (trop compliqué).
 Déjà, c'est pas trop du français, mais j'aimerais un exemple si possible :).

Posté : 17 déc. 2008, 00:25
par hi-logik
Salut je m'incruste parce que moi aussi je veux faire la même chose et moi aussi je l'ai fais en JAVA !

bref tout ça pour dire que c'est vrai qu'il y à des ressources sur le web mais c'est pas toujours évident
de trouver son bonheur quand on arrive à ce niveau de php !

et je suis d'accord avec ça aussi :
Je vois aussi d'un coup la différence entre le PHP amateur et le PHP pro, chose que je crois comprendre il ne faut pas confondre.
à chaque fois on nous renvoie sur des frameworks connu !
Je les trouves très bons certe mais quand on veux le faire soit même...

je commence à croire qu'en faite beaucoup ne savent pas le faire en réalité :D lool

et bien sur on va me dire aussi que l'on va pas réinventer la roue mdrrr !!!
celle la je l'ai pas mal manger !

mais y'a des gens comme moi qui programme pour le plaisir et que le fais de
refaire la roue nous aides à mieux comprendre
et à progresser ! (en tous cas ça me sert bien)

j'ai aussi regarder les frameworks déjà fais mais au début quand on tombe la dedans va comprendre quelque chose lol

à part ça j'ai trouver un liens sympas qui m'aide bien même si c'est pas toujours récent !
(bien sur c'est anglais !)

le voici sur le MVC

http://www.phppatterns.com/docs/design/ ... er_pattern



de plus il propose d'autre design pattern !

http://www.onlamp.com/pub/a/php/2005/11 ... oller.html

et je n'ai pas encore trouver de MVC avec XML sauf si je peux te conseiller un livre qui s'appelle

les cahiers du programmeur de chez Eyrolles qui propose PHP 5 avec design pattern MVC et XML et interface !

^^++

Posté : 17 déc. 2008, 00:32
par Hywan
je commence à croire qu'en faite beaucoup ne savent pas le faire en réalité :D
C'est très probable en effet.

Quand tu parles de XML, tu parles d'une interface qui se crée à partir de XML ? Un peu comme Microsoft et son framework ?

Édition : le premier lien est mauvais car PHP 4, incomplet et trop particulier. Le second lien est pas mal, mais pas assez abstrait. C'est vulgarisé, c'est un bon point de départ, mais il faut approfondir pour bien comprendre les subtilités.

Posté : 17 déc. 2008, 00:41
par hi-logik
en faite je l'etudie en ce moment sur le livre (les cahier du programmeur) qui est vraiment très intéressant, ce sont souvent de bon ouvrage !

mais du peux que j'ai lu le fichier xml est générer pour faire le contrôler et je precise aussi qu'il
utilise un patron XSL !

et les interfaces du style :

Code : Tout sélectionner

interface iControleur { function genere(); } interface iControleur { function saveXML() }
après comme je l'etudie je suis pas encore au top mais quand je saurais mieux géré ce mecanisme,
je n'hésiterais pas à venir en parler ici !

d'ailleurs ce que tu m'as dis pour microsoft vaut pour JAVA JEE !

c'est comme ça qu'on faisais en formation pour le contrôler !

Edition : en effet le premier lien est php4 mais bon ça aide bien il suffit de l'adapter en php 5 et de l'amerlioré un peu ! ( ça donne des pistes )