J'utilise php et structure habituellement mon application dans model-view-controller, donc il est toujours accessible via index.php avec les attributs de classe et de méthode. L'attribut de classe transmis dans le cadre de l'URL spécifie la classe du contrôleur et la méthode simplement la méthode à appeler. Cela semble être assez commun, mais j'ai toujours du mal à déterminer quels contrôleurs dois-je créer. Quelle est la meilleure façon, la plus facile et la plus applicable de décider quels contrôleurs devraient être créés? Je comprends que cela dépend de l'application Web elle-même, mais il doit y avoir une façon de penser générale pour démarrer ce processus.Comment décider des contrôleurs pour une application web?
Répondre
J'ai trouvé que les contrôleurs de construction basés sur les objets de votre application fonctionnent bien, et peuvent prendre en charge la plupart des actions que vous voulez pour votre application.
Jetez un oeil à SO - il y a des URL commençant par/questions,/tags,/utilisateurs, etc. Je proposerais un design qui commence par créer un contrôleur différent pour chaque objet./questions (ou/questions/liste) renvoie une liste de toutes les questions./questions/[0-9] + renvoie les détails d'une question particulière avec ce numéro d'identification./questions/ask renvoie l'interface Poser une question. Au fur et à mesure que vous continuez à créer votre application, la méthode controller-based-on-objects ne répondra peut-être pas à tous vos besoins. Par exemple, sur mon site (http://www.wysiap.com), j'ai éventuellement créé un contrôleur/list pour simplifier le mappage d'URL Grails. Mais dans la plupart des cas, j'ai utilisé cette méthode et il est facile de déterminer quel contrôleur doit effectuer différentes actions.
Je recommande de penser aux pages dont vous aurez besoin dans vos applications pour accomplir toutes les tâches demandées. Vous regrouperez des tâches similaires sur la même page et créerez autant de pages que vous le souhaitez. Une page peut être découpée en différentes vues pour des actions spécifiques. Dans cette optique, vous pouvez avoir un contrôleur par page. Chaque vue de la page peut avoir sa propre méthode (action) dans le contrôleur. Et à l'intérieur de la méthode de chaque vue, vous pouvez avoir un switch()
qui vous permettra d'avoir plusieurs tâches pour la vue. Exemple:
- index.php (contrôleur de tableau de bord)
- /-liste de questions (contrôleur QuestionsListe, l'indice d'action, afficher la page entière)
- /question-list/ajouter (contrôleur QuestionsListe, l'action ajouter, gérer la vue "add" avec des tâches comme show-form, validate-form, insert-question)
- /profile (Contrôleur de profil, index d'action)
- /profile/edit (Contrôleur de profil, action edit, gérer tous les tâches demandées pour votre profil)
- ...
Je conçois la plupart de mes applications web de cette façon et en utilisant Zend-Framework
- 1. Comment puis-je décider si une application convient à SharePoint?
- 2. Comment décider si vous devez développer une application dans SharePoint
- 3. Comment décider sur quel matériel déployer l'application Web
- 4. Pour définir des variables d'environnement pour une application Web Python
- 5. Comment organisez-vous les vues/contrôleurs dans une application Web NON MVC?
- 6. Comment décider quand implémenter une DLL?
- 7. variable scope - comment décider
- 8. Généralités Conception modulaire pour une application Web
- 9. Comment initialiser une application Web?
- 10. Quelle technologie pour une application Web professionnelle?
- 11. Journal des événements SecurityException pour application Web?
- 12. Dois-je séparer les contrôleurs API RESTful des contrôleurs "standards"?
- 13. API pour afficher des graphiques dans une application Web?
- 14. Test d'intégration pour une application Web
- 15. outils pour recréer une application web flux
- 16. Retrait du plan pour une application Web
- 17. Le contrôleur frontal est-il responsable de décider quels contrôleurs/modules charger?
- 18. Scripting wget pour remplir une application Web
- 19. Comment déterminer si une application est une application Web
- 20. Créer une version mobile pour mon application web dans CodeIgniter
- 21. Comment grouper des vues partagées partielles pour des contrôleurs spécifiés?
- 22. Comment faire pour casser une application monolithique en services Web?
- 23. Comment «spec» un serveur Web pour soutenir une application donnée?
- 24. Comment implémenter des conteneurs de tabulation dans une application Web?
- 25. Comment construire une application web avec des utilitaires frontaux Git?
- 26. Comment effectuer un test unitaire pour une application Web?
- 27. Comment stocker les paramètres de configuration pour une application Web?
- 28. Comment définir le format des dates dans une application Web
- 29. MVC: Vues imbriquées et contrôleurs (pour un site Web)
- 30. Comment faire pour obtenir Handle.ToInt32() dans une application Web ASP.NET