2010-02-13 3 views
2

Je souhaite créer ma toute première application Web en utilisant HTML, MySQL, PHP et le Model View Controller. Ce sera très simple pour les débutants: quelques pages qui permettent aux utilisateurs d'entrer/supprimer des données dans/depuis la base de données et d'afficher le contenu de la base de données.Conception/implémentation de MVC à partir de Scratch

Cependant je suis nouveau à MVC, et j'aurais vraiment aimé trouver des tutoriels MVC appropriés pour les débutants comme moi sur la façon de l'implémenter réellement en utilisant des exemples de code simples. J'ai seulement trouvé des exemples avancés qui rendent la courbe d'apprentissage inutilement plus raide. Je suppose que je vais devoir en créer un ici.

Mes questions sont, comment puis-je commencer à concevoir ce MVC à partir de zéro pour une application web très très simple? Comment séparer le modèle, la vue et le contrôleur en code? Quelles étapes dois-je prendre et comment? Comment puis-je implémenter le modèle en tant que classes d'entités métier, la vue en HTML et le contrôleur en tant que scripts qui collent tout ensemble? (en supposant que ma compréhension de ce soit correct) Quelqu'un peut-il recommander des tutoriels clairs et simples sur la façon d'implémenter réellement MVC pour les débutants comme moi-même? (Je ne pouvais pas trouver).

Merci d'avance.

+1

Pourquoi construire à partir de zéro? Il y a beaucoup de MVC là-bas, pour n'importe quelle langue que vous préférez ... – Amirshk

+0

Merci pour votre réponse Am. J'ai lu ça sur Wikipedia. Je ne savais pas quelle était la meilleure approche pour un débutant de comprendre vraiment MVC. Je peux me tromper, mais en utilisant le C++ comme exemple, apprendre à coder une liste chaînée à partir de zéro (au moins une fois) apprendra au débutant beaucoup plus que simplement utiliser une bibliothèque comme Boost depuis le début. Je ne sais pas si ma logique est correcte – Anthony

+1

Je pense que dans ce cas l'approche n'est pas très bonne. Puisqu'un bon MVC a beaucoup plus que juste la séparation des concepts. Il encapsule beaucoup d'idées. vous pouvez lire ce livre: http: // apress.com/book/view/1430210079, il explique très bien comment MVC est né et à quoi répond exactement ce dont il a besoin (en particulier le C# MVC) – Amirshk

Répondre

3

Il existe de nombreux cadres pour vous aider. Je recommanderais d'utiliser CakePHP, http://www.cakephp.org. Il a une bonne documentation, une grande communauté et beaucoup de tutoriels!

+1

Veuillez noter que la plupart des frameworks PHP "MVC" implémente quelque chose qui n'est pas un vrai MVC. En d'autres termes: ils mettent en œuvre ce modèle incorrect. Au moins Symfony/ZF/Kohana ne le gère pas. Je suis sûr que CakePHP (je ne l'ai jamais utilisé) ne l'implémente pas correctement. – Crozin

+0

Merci pour votre réponse Dale. J'ai vu CakePHP comme l'un des nombreux frameworks disponibles pour PHP. Je vais commencer à faire des recherches maintenant. Juste curieux cependant, est de concevoir MVC à partir de zéro que difficile? Merci encore de recommander CakePHP – Anthony

+0

@Crozin, merci pour votre réponse. Comment avez-vous appris MVC: à partir de rien ou d'un framework? Qui bénéficiera le débutant plus? Quel cadre recommanderiez-vous le cas échéant? Merci pour votre perspicacité – Anthony

1

Il n'existe aucun chemin rapide pour cela.

Si vous voulez vraiment construire un MVC, allez sur ceux qui existent déjà. Lisez leur documentation et essayez de comprendre pourquoi ils ont fait certains choix (sécurité, robustesse, etc.). Vous trouverez here une bonne liste des MVC existants.

+0

@Am, je lis le CakePHP maintenant et ça a l'air intéressant. – Anthony

1

Un bon tutoriel pour comprendre comment fonctionne MVC est this one. Il vous montre comment créer un cadre à partir de zéro, mais je vous suggère d'utiliser un cadre existant si vous voulez faire quelque chose de plus complexe.

+0

@eduardoks, merci pour votre réponse et le lien. Je plonge la tête la première dans CakePHP et quand je suis prêt, alors je vais passer du temps à essayer de créer MVC par moi-même. – Anthony

2

Lorsque vous voulez faire MVC la première fois, vous ne partez pas de zéro. CakePHP est une très bonne recommandation de Dale pour commencer. Lorsque vous l'aurez fait plusieurs fois et que vous aurez compris ce qu'est MVC, vous pourrez implémenter un MVC sans framework.

+0

Merci pour votre réponse @sibidiba. A en juger par votre récapitulatif, il semble que MVC soit compliqué, surtout pour les débutants. Je suis nouveau à PHP. Quand je pense à ce MVC, je pense en termes de classes C++ et comment modulariser mon code pour séparer les 3 parties. Ouais, j'aime la documentation jusqu'ici, connecté sur le chat IRC déjà, et j'ai hâte de voir à quoi ressemble CakePHP. – Anthony

+1

MVC n'est pas compliqué du tout. Je suppose que vous connaissez déjà le concept. Mais il est différent à utiliser, et à mettre en œuvre un cadre MVC. Pour ce dernier, vous devez comprendre en profondeur le concept de MVC, le langage avec lequel vous travaillez et les scénarios d'utilisation typiques. Ne jamais recommencer à zéro, sauf si vraiment, vraiment. Penser que votre code sans expérience préalable sera meilleur, plus propre et plus fonctionnel, alors le code bien testé de dizaines de programmeurs expérimentés est une erreur que tout programmeur (y compris moi) fait trop souvent. – sibidiba

+1

Pour CakePHP, c'est une excellente ressource: http://book.cakephp.org/ Et ceci: http://api13.cakephp.org/classes Ce que j'aime vraiment dans CakePHP, c'est si simple , que vous pouvez facilement regarder dans son code source lorsque vous êtes dans le doute comment cela fonctionne. – sibidiba

1

Cela pourrait être un bon point de départ: MVC in PHP est un tutoriel couvrant les bases de MVC.

+0

+1 Merci pour le lien. Très appréciée. – Anthony

1

Je pense que Symfony2 serait un bon choix que le code de base est très vaste et aussi sa mise à l'échelle de niveau de l'entreprise est plus robuste que le Zend Framework ....

+0

désolé pour un v.v. réponse tardive ... –

+0

+1 Pas de soucis. Merci pour la réponse. Actuellement, j'utilise CodeIgniter, Django et bientôt, j'utiliserai aussi Rails. Je ne pense même plus à écrire quoi que ce soit à partir de zéro. – Anthony

+0

oui, oui vous êtes @Anthony, écrire à partir de zéro est une véritable tâche de longue haleine pour les développeurs qui ont besoin de solutions de travail rapides ... –

1

FWIW, tous les cadres de côté serveur (PHP inclus) ne peuvent pas être MVC dans le contexte de l'original-SmallTalk MVC (par exemple, un contexte côté client) en raison de l'absence d'une boucle d'événements en direct. Le MVC côté serveur le plus proche peut venir à Smalltalk MVC est quelque chose comme Model2 (http://en.wikipedia.org/wiki/Model_2).

Questions connexes