Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1482 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  36  37  38  ..  62  63  64  65  66  67
Auteur Sujet :

Model View Controller (MVC) - Architecture des applications PHP

n°1697669
skeye
Posté le 05-03-2008 à 15:57:11  profilanswer
 

Reprise du message précédent :

drasche a écrit :

Chuis content de lire l'article parce que je vais assez dans la même direction que le mec [:petrus75]
 
* le contrôleur lit les inputs et les passent au modèle
* le contrôleur demande au modèle de traiter les données (charger, valider, sauver)
* le contrôleur file le modèle à la vue
* le contrôleur demande à la vue de produire une sortie (que ce soit un e-mail ou une page web)
 
Concernant la vue, il m'arrive de créer une seule classe pour produire plusieurs outputs parce que les données requises peuvent être les mêmes.
 
J'ai bon jusque là? [:petrus dei]


 
A mon avis le monsieur aurait un soucis dès le premier point.[:dawa]
Dans la théorie à moins que je me trompe l'input utilisateur est traité par la vue.[:petrus75]
Ca change pas énormément, mais normalement le controleur doit instancier la vue, et lui demander de lui fournir l'input utilisateur.[:dawa]


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 05-03-2008 à 15:57:11  profilanswer
 

n°1697675
dwogsi
Défaillance cérébrale...
Posté le 05-03-2008 à 15:58:14  profilanswer
 

En ce qui me concerne, j'ai bien ma vue d'un côté et mon modèle de l'autre. La dessus aucun problème ils sont complètement indépendant et il n'y a pas d'échanges entre les deux.
 
En revanche, le contrôleur...
C'est justement ce qui avait été évoqué au début de ce topic, mon contrôleur finalement c'est mon script. Genre on appel la page register.php, et bien c'est le code contenu dans register.php qui va agir en tant que contrôleur. Je sais pas si c'est bien ou mal, et j'ai pas trop le courage de lire tout le topic pour voir si la question a déjà été évoquée...
 
Un avis sur la question?
Parce que très franchement je vois pas quel peut être l'intérêt de coder un contrôleur hors script...?


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1697677
skeye
Posté le 05-03-2008 à 15:58:37  profilanswer
 

FlorentG a écrit :


 
On arrive à une autre question, est-ce qu'il est vraiment possible de faire un Controller totalement indépendant du résultat final. Genre dans l'article que j'ai posté, y'en a qui ont critiqué le fait qu'on puisse faire une redirection vers une autre page dans le Controller. Or, une redirection implique le format de destination.


 
Je vois pas ce qui empêche de virer ça du contrôleur et de le mettre dans la vue.


---------------
Can't buy what I want because it's free -
n°1697678
FlorentG
Unité de Masse
Posté le 05-03-2008 à 15:58:39  profilanswer
 

drasche a écrit :

J'ai bon jusque là? [:petrus dei]


C'est à peu près ce que j'ai fait chez moi. Par contre j'ai des crises d'identités dans mes Controller. Genre dans le cas du mail, le Controller instancie activement la view du mail, le créer, l'envoi, et redirige vers une URL de succès :/ Est-ce que ce serait plutôt à la view de rediriger, elle qui sait le bon format ?

n°1697680
masklinn
í dag viðrar vel til loftárása
Posté le 05-03-2008 à 15:59:18  profilanswer
 

FlorentG a écrit :

C'est masculin ? Ou tu veux dire que MVC n'est pas vraiment un(e) design pattern... Plutôt une architecture qui va englober plusieurs patterns.
 
Bon sinon faut lancer le débat. Même si sa rant est assez mal argumentée, la vraie question est : est-il possible de faire du vrai MVC dans le domaine du web ?


C'est masculin, comme rant d'ailleurs [:pingouino]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1697685
FlorentG
Unité de Masse
Posté le 05-03-2008 à 16:00:58  profilanswer
 

skeye a écrit :

Ca change pas énormément, mais normalement le controleur doit instancier la vue, et lui demander de lui fournir l'input utilisateur.[:dawa]


C'est là pour moi la grosse différence GUI standard et GUI web. L'input utilisateur ne vient pas de la vue, mais de la requête. Le MVC traditionnel s'y casse un peu la gueule.
 

dwogsi a écrit :

C'est justement ce qui avait été évoqué au début de ce topic, mon contrôleur finalement c'est mon script.


Cela va de soi. Le Controller est un peu un script PHP normal, mais mieux architecturé : sous forme de classe, avec des méthodes pouvant correspondre à la méthode HTTP ou à une action.

n°1697694
skeye
Posté le 05-03-2008 à 16:03:19  profilanswer
 

FlorentG a écrit :


C'est là pour moi la grosse différence GUI standard et GUI web. L'input utilisateur ne vient pas de la vue, mais de la requête.

 

et alors? :??:

Message cité 1 fois
Message édité par skeye le 05-03-2008 à 16:03:27

---------------
Can't buy what I want because it's free -
n°1697700
dwogsi
Défaillance cérébrale...
Posté le 05-03-2008 à 16:05:09  profilanswer
 

FlorentG a écrit :

Cela va de soi. Le Controller est un peu un script PHP normal, mais mieux architecturé : sous forme de classe, avec des méthodes pouvant correspondre à la méthode HTTP ou à une action.


Bon dans ce cas semblerait que j'ai bon, merci.
Je vais quand même continuer à suivre ce topic.


Message édité par dwogsi le 05-03-2008 à 16:05:18

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1697701
drasche
Posté le 05-03-2008 à 16:05:19  profilanswer
 

skeye a écrit :

A mon avis le monsieur aurait un soucis dès le premier point.[:dawa]
Dans la théorie à moins que je me trompe l'input utilisateur est traité par la vue.[:petrus75]
Ca change pas énormément, mais normalement le controleur doit instancier la vue, et lui demander de lui fournir l'input utilisateur.[:dawa]


Je crois qu'on n'est pas sur la même longueur d'ondes, je reformule:
Les données fournies par $_GET, $_POST et autres => input
Les données fournies par le modèle => output
 

FlorentG a écrit :

C'est à peu près ce que j'ai fait chez moi. Par contre j'ai des crises d'identités dans mes Controller. Genre dans le cas du mail, le Controller instancie activement la view du mail, le créer, l'envoi, et redirige vers une URL de succès :/ Est-ce que ce serait plutôt à la view de rediriger, elle qui sait le bon format ?


Je fais ça aussi. Mais je crois aussi qu'on gagnerait à rassembler ces deux actions ensemble.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1697703
FlorentG
Unité de Masse
Posté le 05-03-2008 à 16:05:29  profilanswer
 


Cet-à-dire qu'en web, on ne va pas instancier la vue pour lui demander les données. On va plutôt les récupérer d'un objet requête. La vue ne sert à rien dans ce cas là.

mood
Publicité
Posté le 05-03-2008 à 16:05:29  profilanswer
 

n°1697707
skeye
Posté le 05-03-2008 à 16:08:30  profilanswer
 

drasche a écrit :


Les données fournies par $_GET, $_POST et autres => input

 

bah c'est bien ce que je dis.

 


FlorentG a écrit :


Cet-à-dire qu'en web, on ne va pas instancier la vue pour lui demander les données. On va plutôt les récupérer d'un objet requête. La vue ne sert à rien dans ce cas là.


Et pourquoi on ne le ferait pas? Et pourquoi ce ne serait pas la vue qui gère cet objet requête? Je vois pas ce qui dérange, en fait, là...et c'est ce que le mec veut dire - si tu veux changer d'interface utilisateur complètement (y compris la manière de récupérer l'input, donc), ben tu peux.:o

Message cité 2 fois
Message édité par skeye le 05-03-2008 à 16:09:20

---------------
Can't buy what I want because it's free -
n°1697709
FlorentG
Unité de Masse
Posté le 05-03-2008 à 16:09:29  profilanswer
 

skeye a écrit :

Et pourquoi ce ne serait pas la vue qui gère cet objet requête?


C'est justement la question posée. Le Controller doit-il récupérer les données directement de la requête, ou doit-il les récupérer d'une vue qu'il instancierait.

n°1697711
skeye
Posté le 05-03-2008 à 16:10:30  profilanswer
 

FlorentG a écrit :


C'est justement la question posée. Le Controller doit-il récupérer les données directement de la requête, ou doit-il les récupérer d'une vue qu'il instancierait.


si tu veux faire du mvc strict comme dit le monsieur du lien cité plus haut, c'est le boulot de la vue.[:jagstang]


---------------
Can't buy what I want because it's free -
n°1697714
FlorentG
Unité de Masse
Posté le 05-03-2008 à 16:12:13  profilanswer
 

skeye a écrit :

si tu veux faire du mvc strict comme dit le monsieur du lien cité plus haut, c'est le boulot de la vue.[:jagstang]


En même temps (je réfléchis en live là), ce qu'on récupère dans la requête est directement lié à la vue. Vu que la vue, ça peut être un formulaire, et que la gueule du formulaire change directement ce qu'on retrouve dans la requête. Donc en récupérant les données de la requête, on récupère ce que la vue définit. Donc la question finalement ne se pose pas [:petrus75]

n°1697716
skeye
Posté le 05-03-2008 à 16:13:48  profilanswer
 

Bah wala, c'est bien ce que je dis.
En manipulant directement l'input utilisateur dans ton contrôleur tu définis indirectement un contrat que devra suivre ta vue...tu n'es donc plus libre de la changer à ta guise, donc t'as niqué ton MVC.:o


---------------
Can't buy what I want because it's free -
n°1697720
drasche
Posté le 05-03-2008 à 16:17:55  profilanswer
 

skeye a écrit :

bah c'est bien ce que je dis.


OK. Dans ce cas, je ne suis pas d'accord que la vue reçoive ces données. Dans mon esprit, la vue ne peut recevoir que des informations provenant directement du modèle. C'est à dire des données qui auront été traitées, filtrées, etc.

Message cité 2 fois
Message édité par drasche le 05-03-2008 à 16:18:28

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1697721
FlorentG
Unité de Masse
Posté le 05-03-2008 à 16:18:20  profilanswer
 

Je vois là on mon implémentation est défaillante : certains trucs dépendants de la vue se retrouvent dans le contrôleur.
 
Genre les formulaires et les règles de validation : là actuellement le modèle définit les règles de validation. Ensuite le controller peut en rajouter par dessus (genre formulaire de connexion, champ "confirmer le mot de passe" ). Ce serait plutôt à la vue de faire ça, vu que c'est elle qui définit les contrôles.
 
Le contrôleur serait alors à sa place : récupérer les données (requêtes), récupérer les infos de validation, demander à la vue ses propres infos de validation, valider, et si tout est ok, hop on met à jour les données via le modèle.
 
Maintenant qu'est-ce qu'on fait une fois que c'est bon ? Comme en discutaient certaines personnes, c'est pas au controller de rediriger, mais plutôt à la vue.

n°1697722
skeye
Posté le 05-03-2008 à 16:19:23  profilanswer
 

drasche a écrit :


OK. Dans ce cas, je ne suis pas d'accord que la vue reçoive ces données. Dans mon esprit, la vue ne peut recevoir que des informations provenant directement du modèle. C'est à dire des données qui auront été traitées, filtrées, etc.


 
Le problème c'est que la Vue ne reçoit pas l'input utilisateur - elle en est le propriétaire!:D


---------------
Can't buy what I want because it's free -
n°1697723
FlorentG
Unité de Masse
Posté le 05-03-2008 à 16:19:30  profilanswer
 

drasche a écrit :

OK. Dans ce cas, je ne suis pas d'accord que la vue reçoive ces données.


En même temps, la vue a parfois besoin de ces données : genre réaffichage d'un formulaire en cas d'erreurs, faut bien qu'elle réaffiche ce qu'il y avait dans la requête ? [:petrus75]

n°1697729
skeye
Posté le 05-03-2008 à 16:25:38  profilanswer
 

FlorentG a écrit :

Je vois là on mon implémentation est défaillante : certains trucs dépendants de la vue se retrouvent dans le contrôleur.

 

Genre les formulaires et les règles de validation : là actuellement le modèle définit les règles de validation. Ensuite le controller peut en rajouter par dessus (genre formulaire de connexion, champ "confirmer le mot de passe" ). Ce serait plutôt à la vue de faire ça, vu que c'est elle qui définit les contrôles.

 

Le contrôleur serait alors à sa place : récupérer les données (requêtes), récupérer les infos de validation, demander à la vue ses propres infos de validation, valider, et si tout est ok, hop on met à jour les données via le modèle.

 

Maintenant qu'est-ce qu'on fait une fois que c'est bon ? Comme en discutaient certaines personnes, c'est pas au controller de rediriger, mais plutôt à la vue.

 

Perso je pense que la validation de l'input doit être fait dans la vue.
Par contre les filtres qu'elle doit appliquer ne sont pas forcément tous définis chez elle : par exemple c'est le modèle qui sait quels champs sont obligatoires a priori. Par contre si la vue demande 2 fois le mot de passe c'est une validation que ne concerne qu'elle.
Pour moi le contrôleur récupère l'input déjà validé, et fait ce qu'il a à faire avec ça.

Message cité 2 fois
Message édité par skeye le 05-03-2008 à 16:26:29

---------------
Can't buy what I want because it's free -
n°1697733
FlorentG
Unité de Masse
Posté le 05-03-2008 à 16:29:04  profilanswer
 

skeye a écrit :

Par contre les filtres qu'elle doit appliquer ne sont pas forcément tous définis chez elle : par exemple c'est le modèle qui sait quels champs sont obligatoires a priori. Par contre si la vue demande 2 fois le mot de passe c'est une validation que ne concerne qu'elle.


Effectivement. C'est ce que j'ai fait chez moi. Le modèle ne valide les données que de son point de vue. Genre type, taille, vérification si existe déjà, etc. Après la vue (chez moi le contrôleur pour l'instant, je vais modifier) rajoute ses propres règles style confirmation, etc.

n°1697741
FlorentG
Unité de Masse
Posté le 05-03-2008 à 16:35:38  profilanswer
 


C'est lui qui déclenche la validation, mais c'est pas à lui en fait de définir les règles de validations. Genre pour un formulaire de login :

Code :
  1. class Users extends Model
  2. {
  3.  
  4.  // ...
  5.  
  6.  public function getValidation()
  7.  {
  8.     $validator = new Validator();
  9.     $validator->rule('login', 'string', 255);
  10.     $validator->rule('password', 'string', 255);
  11.     return $validator;
  12.  }
  13.  
  14. }
 

Après la View définit ses propres règles :

Code :
  1. class LoginForm extends View
  2. {
  3.  
  4.  public function addRules(&$validator)
  5.  {
  6.    $validator->regle('password2', 'string', 255);
  7.  }
  8. }
 

Et enfin le controller réuni les deux :

Code :
  1. class Login extends Controller
  2. {
  3.  public function httpPost()
  4.  {
  5.    $model = $this->model();
  6.    $view   = $this->view();
  7.  
  8.    $validator = $model->getValidator();
  9.    $view->addRules($validator);
  10.  
  11.    if($validator->check($this->post) {
  12.      ....
  13.    }
  14.  }
  15.  
  16. }
 

Ainsi on peut changer le modèle et la view, rajouter des champs ou des validations, le controller restera le même, on a une séparation correcte

Message cité 1 fois
Message édité par FlorentG le 05-03-2008 à 16:35:55
n°1697742
skeye
Posté le 05-03-2008 à 16:36:15  profilanswer
 

 

Il peut y avoir des validations à faire qui sont spécifiques à la vue (cf exemple de la double saisie du mot de passe par exemple). Pourquoi ce genre de validation se retrouverait-elle dans le contrôleur? Il s'en fout, lui qu'on présente le champ 1 fois, 2 fois ou 15 fois à l'utilisateur, ce qu'il veut c'est savoir ce que l'utilisateur a saisi.

 

Ensuite, qui a besoin de savoir ce qui n'a pas été validé? La vue, pour en notifier l'utilisateur.

 

Le contrôleur si l'input n'est pas bon il va se contenter de ne rien faire, de toute manière, à part demander à la vue de s'afficher.


Message édité par skeye le 05-03-2008 à 16:36:42

---------------
Can't buy what I want because it's free -
n°1697750
masklinn
í dag viðrar vel til loftárása
Posté le 05-03-2008 à 16:42:16  profilanswer
 

FlorentG a écrit :


C'est lui qui déclenche la validation, mais c'est pas à lui en fait de définir les règles de validations. Genre pour un formulaire de login :

Code :
  1. class Users extends Model
  2. {
  3.  
  4.  // ...
  5.  
  6.  public function getValidation()
  7.  {
  8.     $validator = new Validator();
  9.     $validator->rule('login', 'string', 255);
  10.     $validator->rule('password', 'string', 255);
  11.     return $validator;
  12.  }
  13.  
  14. }
 

Après la View définit ses propres règles :

Code :
  1. class LoginForm extends View
  2. {
  3.  
  4.  public function addRules(&$validator)
  5.  {
  6.    $validator->regle('password2', 'string', 255);
  7.  }
  8. }
 

Et enfin le controller réuni les deux :

Code :
  1. class Login extends Controller
  2. {
  3.  public function httpPost()
  4.  {
  5.    $model = $this->model();
  6.    $view   = $this->view();
  7.  
  8.    $validator = $model->getValidator();
  9.    $view->addRules($validator);
  10.  
  11.    if($validator->check($this->post) {
  12.      ....
  13.    }
  14.  }
  15.  
  16. }
 

Ainsi on peut changer le modèle et la view, rajouter des champs ou des validations, le controller restera le même, on a une séparation correcte


http://www.djangoproject.com/documentation/newforms/
http://www.djangoproject.com/documentation/modelforms/

skeye a écrit :


Le contrôleur si l'input n'est pas bon il va se contenter de ne rien faire, de toute manière, à part demander à la vue de s'afficher.


Comment il sait que l'input est pas bon, le contrôlleurs? Et si il veut simplement envoyer cet input au model, pourquoi la validation ferait-elle partie de la vue?

 

Il serait plus logique d'avoir la validation qui fait partie du model en permanence (model "virtuel" si besoin, sans backing dans une datastore)

Message cité 2 fois
Message édité par masklinn le 05-03-2008 à 16:44:00

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1697755
FlorentG
Unité de Masse
Posté le 05-03-2008 à 16:49:51  profilanswer
 


[:bien]
 
Maintenant question (si tu connais bien Django bien-sûr), à quel niveau gèrent-ils les redirections. Genre si les données sont valides et sauvegardées, est-ce le controller qui décide quoi faire, ou la vue ?

n°1697762
ratibus
Posté le 05-03-2008 à 17:01:33  profilanswer
 

skeye a écrit :

...en tout cas il a pas tort, le monsieur - perso ce que j'ai vu des gens utilisant symfony par exemple, c'est qu'il ne mettent quasiment plus rien dans le modèle - en-dehors de ce que génère l'ORM, et la vue accède directement aux membres des controleurs...je trouve pas ça super clean.[:petrus75]


T'as vu des buses qui utilisent symfony alors :D
Le passage de données du controlleur à la vue par contre se fait effectivement en remplissant en dynamique des données membres du controleur. Je vois pas trop en quoi c'est pas clean :spamafote:

FlorentG a écrit :


[:bien]
 
Maintenant question (si tu connais bien Django bien-sûr), à quel niveau gèrent-ils les redirections. Genre si les données sont valides et sauvegardées, est-ce le controller qui décide quoi faire, ou la vue ?


C'est le rôle du contrôleur de gérer ça. Il reçoit les données, les file au modèle pour validation et ensuite a un comportement suivant le résultat de cette validation.


---------------
Mon blog
n°1697764
skeye
Posté le 05-03-2008 à 17:03:45  profilanswer
 

masklinn a écrit :


Comment il sait que l'input est pas bon, le contrôlleurs?


Comme je le vois, tout ce qu'il saura c'est que quand il demande l'input à la vue cellec-i ne lui retourne rien, puisque ça n'a pas validé. Donc il n'a rien à faire.:o
 

masklinn a écrit :

Et si il veut simplement envoyer cet input au model, pourquoi la validation ferait-elle partie de la vue?
 
Il serait plus logique d'avoir la validation qui fait partie du model en permanence (model "virtuel" si besoin, sans backing dans une datastore)


 
Toutes les validations à faire ne concernent pas le modèle...pour moi le modèle doit bien être le propriétaire de certaines règles de validation, mais ce n'est pas à lui de les tester directement sur l'input utilisateur.
Donc soit le contrôleur peut lui demander les règles et les transmettre à la vue, soit chaque couche fait les validations qui lui sont propres elle-même, mais dans ce cas il faut un mécanisme de remontée du résultat des différentes validations vers la Vue un peu plus complexe...
 


---------------
Can't buy what I want because it's free -
n°1697768
FlorentG
Unité de Masse
Posté le 05-03-2008 à 17:06:50  profilanswer
 

ratibus a écrit :

C'est le rôle du contrôleur de gérer ça. Il reçoit les données, les file au modèle pour validation et ensuite a un comportement suivant le résultat de cette validation.


Justement, ça à l'air d'en faire sauter quelque-uns...

n°1697769
skeye
Posté le 05-03-2008 à 17:08:01  profilanswer
 

ratibus a écrit :


Le passage de données du controlleur à la vue par contre se fait effectivement en remplissant en dynamique des données membres du controleur. Je vois pas trop en quoi c'est pas clean :spamafote:


 
La vue est censée être une représentation de l'état du modèle, pas du contrôleur.[:jagstang]
 
Puis bon bref, je trouve ce genre de déclaration implicite de variables immonde en général, de toute manière.[:petrus75]


---------------
Can't buy what I want because it's free -
n°1697772
skeye
Posté le 05-03-2008 à 17:09:35  profilanswer
 

FlorentG a écrit :


Justement, ça à l'air d'en faire sauter quelque-uns...


Tout ce que doit faire le controleur une fois qu'il a traité ce qu'il avait à traiter, c'est demander à la vue de s'afficher.[:skeye]


---------------
Can't buy what I want because it's free -
n°1697778
FlorentG
Unité de Masse
Posté le 05-03-2008 à 17:12:28  profilanswer
 

skeye a écrit :

Tout ce que doit faire le controleur une fois qu'il a traité ce qu'il avait à traiter, c'est demander à la vue de s'afficher.[:skeye]


Et donc elle redirigerait éventuellement vers une page de succès ou vers la liste des enregistrements...

n°1697780
masklinn
í dag viðrar vel til loftárása
Posté le 05-03-2008 à 17:13:23  profilanswer
 

FlorentG a écrit :


[:bien]
 
Maintenant question (si tu connais bien Django bien-sûr), à quel niveau gèrent-ils les redirections. Genre si les données sont valides et sauvegardées, est-ce le controller qui décide quoi faire, ou la vue ?


Django ne se définit pas comme un framework MVC (surtout pas strict), mais comme un framework MTV.
 
Donc dans Django les redirections (ou même l'appel aux routines de validation) sont effectuées au niveau de la View, mais dans la majorité des frameworks c'est une étape qui correspond plus au Controller.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1697781
skeye
Posté le 05-03-2008 à 17:13:33  profilanswer
 

FlorentG a écrit :


Et donc elle redirigerait éventuellement vers une page de succès ou vers la liste des enregistrements...


Voilà, c'est elle qui choisit ce qu'elle doit présenter à l'utilisateur. En tout cas c'est comme ça que je vois un MVC "strict".


---------------
Can't buy what I want because it's free -
n°1697784
FlorentG
Unité de Masse
Posté le 05-03-2008 à 17:18:12  profilanswer
 

masklinn a écrit :

Django ne se définit pas comme un framework MVC (surtout pas strict), mais comme un framework MTV.


Ok je vois. Je constate qu'ils ont une très bonne approche, c'est très pragmatique tout ça (et donc sûrement supérieur au reste).
 

skeye a écrit :

Voilà, c'est elle qui choisit ce qu'elle doit présenter à l'utilisateur. En tout cas c'est comme ça que je vois un MVC "strict".


Ouaip, je commence à comprendre. Je vais me rentrer chez moi, et y réfléchir sur la route, compte rendu dans une heure [:dawa]

n°1697787
skeye
Posté le 05-03-2008 à 17:21:45  profilanswer
 

masklinn a écrit :


Donc dans Django les redirections (ou même l'appel aux routines de validation) sont effectuées au niveau de la View,

 

Ca reviendrait pas un poil à ce que je disais sur la vue dans un mvc "strict", ça?
Depuis tout à l'heure que j'y réfléchis je me dis qu'il y a de moins en moins de trucs dans le contrôleur et qu'on pourrait tout autant le résumer à une classe qui se contente de choisir la bonne vue et les données associées...[:petrus75]

Message cité 1 fois
Message édité par skeye le 05-03-2008 à 17:22:46

---------------
Can't buy what I want because it's free -
n°1697788
masklinn
í dag viðrar vel til loftárása
Posté le 05-03-2008 à 17:23:08  profilanswer
 

skeye a écrit :

 

Ca reviendrait pas un poil à ce que je disais sur la vue dans un mvc "strict", ça?


Si. Va lire le lien que j'ai filé à florangé sur la faq django :o

 

(en gros, ils considèrent que le controller c'est le dispatcher d'URLs + quelques trucs autour qui font globalement partie du framework, donc le controller n'est pas défini par l'utilisateur, qui définit le modèle, la vue et la/les template(s). D'où MTV Model Template View)

Message cité 1 fois
Message édité par masklinn le 05-03-2008 à 17:25:17

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1697790
skeye
Posté le 05-03-2008 à 17:25:14  profilanswer
 

masklinn a écrit :


Si. Va lire le lien que j'ai filé à florangé sur la faq django :o


Oué ok, donc c'est un framework MVC dont une partie du C est dans le framework lui-même et le reste tellement léger qu'il a été fusionné dans la vue, quoi.:o


---------------
Can't buy what I want because it's free -
n°1697793
ratibus
Posté le 05-03-2008 à 17:32:47  profilanswer
 
n°1697802
theredled
● REC
Posté le 05-03-2008 à 17:54:52  profilanswer
 

Détail : dans tous les cas en MVC, la template fait bien partie de la vue nan ?


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1697803
skeye
Posté le 05-03-2008 à 17:54:53  profilanswer
 


 
Si on résume, il dit ça :
M = classes de validation.
V = classes qui savent afficher les formulaires.
C = classes de formulaire elles-mêmes.
 
Problème :  
C'est bien joli tout ça, mais il a encore une couche entre le contrôleur et la vue qui vient taper dans les deux sans demander l'avis de personne => son action!
Soit elle fait partie du contrôleur et dans ce cas elle n'a pas à aller taper dans l'input utilisateur directement ou à balancer une redirection de son choix, soit elle fait partie de la vue et dans ce cas elle n'a pas à instancier le contrôleur.[:joce]


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  36  37  38  ..  62  63  64  65  66  67

Aller à :
Ajouter une réponse
 

Sujets relatifs
Comment créer une architecture propre et fonctionelle...[Débutant] Webdesigner a besoin d'aide pour PHP
script PHP style explorateur windowsPHP et MS SQL
[PHP] envoi d'images qui se dimentionne et s'ajoute direct sur 1pageAfficher le temps utilisé pour générer une page PHP
[PHP] connexion bdd différente selon page locale ou sur serveur ?Afficher une image générée par un script PHP dans un PDF ?
Utilisation d'une variable en Flash depuis PHPErreur de forum PHP
Plus de sujets relatifs à : Model View Controller (MVC) - Architecture des applications PHP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR