Un exemple d'un contrôleur MVC
J'ai lu beaucoup de choses sur comment et pourquoi utiliser une approche MVC dans une application. J'ai vu et comprendre des exemples d'un Modèle, j'ai vu et comprendre des exemples de la Vue.... mais je suis ENCORE un peu floue sur le contrôleur. J'aimerais vraiment voir un assez approfondie exemple d'un contrôleur(s). (en PHP si possible, mais n'importe quelle langue peut aider)
Merci.
PS: Il serait également très bien si je pouvais voir un exemple d'un index.php page, qui décide de la manette à l'utiliser et comment.
EDIT: je sais ce que le travail du contrôleur est, je ne comprends vraiment pas comment ce faire dans la programmation orientée objet.
- Quand vous pensez à un contrôleur de penser au sujet de contrôle de flux. Suffit de mettre un autre développeur doit être capable de regarder votre contrôleur et de se faire une idée claire de ce que cette action n'comment il le fait sans aller dans les détails.
- Vous devriez voir mon centralisée
index.php
. Il dépend de la réécriture d'URL. stackoverflow.com/questions/42172228/...
Vous devez vous connecter pour publier un commentaire.
Exemple de demande
Mettre quelque chose comme ceci dans votre
index.php
:Vraiment de base, mais vous voyez l'idée... (j'ai aussi n'a pas pris soin de charger le contrôleur de classe, mais je suppose que ça peut être fait soit via le chargement automatique ou que vous savez comment le faire.)
Contrôleur Simple exemple (controllers/login.php):
Comme vous le voyez, le contrôleur prend en charge le "flux" de l'application - la soi-disant logique de l'application. Il ne prenez pas soin de stockage de données et de la présentation. Plutôt rassemble toutes les données nécessaires (en fonction de la demande) et l'affecte à la vue...
Noter que ce ne serait pas travailler avec n'importe quel cadre je sais, mais je suis sûr que vous savez ce que les fonctions sont censés faire.
$_SERVER['REQUEST_URI']
) dans le script PHP. Agréable et claire contrôleur MVC exemple.$controllerName
et$actionName
prenez brut de l'entrée utilisateur + ajout d'un mot d'entrée de l'utilisateur. C'est essentiellement la même que:$controllerName = ucfirst($_GET['controller']).'Controller';
et$actionName = strtolower($_GET['action']).'Action';
... Pour être honnête, je ne suis pas sûr si c'est un problème de sécurité. ... Ce que j'ai à l'esprit est de désinfecter la saisie de l'utilisateur avec une fonction comme ceci:function h($str) { return trim(stripslashes(htmlspecialchars($str, ENT_QUOTES, 'utf-8'))); }
... Voir aussi: OWASP sur l'injection de code.index.php
à partir de cet exemple, que de commencer tout le toutim être appelé?index.php
est un bon nom, car elle correspond conventions / valeurs par défaut de la plupart des logiciel de serveur web.index.php
; que faire appel à leur propre Contrôleur de classe. Mais jusqu'à présent, j'ai eu dans lecontrollers/
dir – qui, je le sais comprendre n'est pas ce qu'un contrôleur est ... en gros, je veux savoir comment changer le nom de ce dir.Imaginez trois écrans d'INTERFACE utilisateur, un écran où un utilisateur d'entrer des critères de recherche, un écran où une liste des résumés des enregistrements correspondant est affiché et un écran où, une fois qu'un fichier est sélectionné, il s'affiche pour l'édition. Il y aura un peu de logique relatives à la recherche initiale sur les lignes de
Où faut que logique aller? Pas dans la vue ou le modèle sûrement? C'est donc le travail du contrôleur. Le contrôleur devrait également être responsable de la prise de critères et de l'invocation de la méthode de Modèle pour la recherche.
Contrôleur de
jeu de données, les paramètres dans le constructeur.
Vues
de retour à la pleine tempalte chemin (non statique)
Veuillez vérifier: