|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Débutant
|
Bonjour,
J'ai une page HTML avec des bouts de scripts PHP (en gras). Pour plus de faciliter, cette page est aussi en pièce jointe ! Je souhaiterais la coder soit en PHP 100%, soit en utilisant des classes. Mais j’aimerais profiter de vos expériences et conseils.... Voici la page Code :
D'avance merci à tous
__________________
Esteban
|
||
|
|
00
|
|
|
#2 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Salut Esteban.
La séparation claire des vues et des traitements est une étape décisive dans l'industrialisation d'une application web. A ce jour, le pattern le plus employé dans ce but est le célèbre MVC. Tu trouvera sur le forum et dans les divers cours de developpez.com toutes les ressources qu'il te faut pour atteindre ce but. L'idée générale est d'obtenir une architecture souple ou les vues, les traitements et les objets d'enregistrements sont totalement dé-corrélés. Un schéma vaut plus que 2h d'explications: ![]() On a donc 3 groupes de base: - les contrôleurs sont responsables de la prise en charge des requêtes du client, ce sont eux qui vont appeler la logique métier et les objets modèle, en d'autre termes, ce sont eux qui sont responsables du contrôle et qui sont au commande de la machinerie. - les objets modèles sont les structures de données de l'application, ils sont traditionnellement responsable de la lecture et de l'enregistrement en base de données (ces classes caractérisent ce qu'on appelle la couche de persistance). Ces modèles ne font jamais de vérification des inputs, c'est le rôle du contrôleur. - les vues sont des scripts responsables de la mise en forme et de l'affichage de ce que leur a passé le contrôleur (après avoir effectué les traitements.) Un exemple de call-flow pour l'affichage d'un Article dans une application MVC: - le contrôleur d'articles va chercher et récupérer l'objet article après avoir validé la demande du client - l'objet modèle invoqué par le contrôleur va tenter de récupérer les données sur la base - le contrôleur va ensuite passer l'article à la vue qui va le mettre en forme (en HTML, en XML, en JSon etc.) - le résultat produit est envoyé à l'utilisateur.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#3 |
|
Débutant
|
Merci de ton information.
Je viens d'effectuer une recherche MVC dans le forum PHP et ne trouve rien As-tu un lien pour m’approcher du document explicatif ? Merci bcp
__________________
Esteban
|
|
|
00
|
|
|
#4 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Julien Pauli est un expert reconnu en PHP, il hante parfois le forum. Son article sur MVC est disponible ici: http://julien-pauli.developpez.com/t...vc-controleur/
-- Edit L'article de Pauli s'attache davantage aux controlleurs et n'est pas assez général. Il y en a un autre plus exhaustif ici: http://tahe.developpez.com/web/php/mvc/
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 837 ![]() |
http://julien-pauli.developpez.com/t...vc-controleur/
http://tahe.developpez.com/web/php/mvc/ -- edit -- Benjamin Delespierre ma devancé avec son édit sournois ^^ |
|
00
|
|
|
#6 |
|
Débutant
|
Merci, je l'ai
__________________
Esteban
|
|
|
00
|
|
|
#7 |
|
Débutant
|
Tiens, un revenant...
Je vais imprimer cela demain et lire à tête reposée... Merci Grunk
__________________
Esteban
|
|
|
00
|
|
|
#8 |
|
Débutant
|
Grunk et autres,
Ce modèle me semble bien compliqué (trop pour mon petit site) que j'ai déjà structuré par un skelet.... mais il y a tjs du bon à prendre... Mais de la à remplacer le tableau $Reponse au lieu de $_POST, c'est se gratter pour se faire rire.... Je reste sur ma faim quant à ma demande initiale... Je creuse Grunk
__________________
Esteban
|
|
|
00
|
|
|
#9 | ||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
- Autloader - BaseController - Model - Database - ViewManager - Router - Request - Response On peut pas vraiment dire que ce soit bien compliqué... Citation:
Voici ce à peut ressembler la classe Request dans une implémentation du MCV, tu constatera qu'il y a quelques différences par rapport à un pauvre tableau: Code :
On peut encore étendre ces fonctionnalités, mais pour l'heure ça convient pour des sites de petite envergure.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||||
|
00
|
|
|
#10 | |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Tu m'as signalé par PM que tu ne comprenais pas l'avantage d'un pattern MVC face à un mécanisme d'inclusion.
L'intérêt le plus évident est le découpage, en séparant les données des traitements et de leur affichage, on apporte plus de flexibilité à l'application. Un autre intérêt est la factorisation, il s'agit de rester DRY (Don't Repeat Yourself), ce qui n'est pratiquement pas possible avec un schéma classique d'inclusions ou on est ammené à réécrire à plusieurs endroits des pans de code entiers. Le MVC est capable d'apporter de la sécurité, les controlleurs ayant pour rôle de valider et de purifier les données avant qu'elles ne soit transmises à la logique métier et modèle. Enfin, le MVC permet d'établir clairement le rôle et la responsabilité de chaque élément du système, ce qui permet non seulement d'identifier plus rapidement les problèmes mais surtout d'établir un processus clair et facile à comprendre dans toute la logique du traitement d'une requête (une représentation par un diagramme UML est d'ailleurs possible.) Tu dis que tu reste sur ta faim mais ta demande initiale était bien: Citation:
Si je peux me permettre, un découpage en classes qui se résume à créer un ensemble de fonction mélangeant métier, vues et modèle ne constitue pas un design selon moi.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com