Je suis actuellement en train de développer ma propre PHP 5.3 HMVC cadre appelé Alliage. Depuis que je suis beaucoup investi dans et vendus sur HMVC, je pensais que je pouvais offrir un autre point de vue, et peut-être une meilleure explication de pourquoi HMVC doit être utilisé et les avantages qu'elle apporte.
Le plus grand avantage pratique de l'aide d'un HMVC l'architecture est la "widgetization" de contenu structures. Un exemple pourrait être les commentaires, les notations, Twitter ou un blog flux RSS affiche, ou l'affichage du contenu d'un panier pour un site e-commerce. C'est essentiellement un morceau de contenu qui doit être affichée sur plusieurs pages, et peut-être même dans des endroits différents, en fonction du contexte de la principale requête HTTP.
MVC traditionnel cadres ne présentent généralement pas une réponse directe à ces types de contenu structures, afin que les gens finissent généralement par la duplication de commutation et mises en page, à l'aide de l'aide personnalisée, la création de leur propre widget des structures ou des fichiers de la bibliothèque, en traction ou en indépendants des données à partir de la principale demande du Contrôleur de pousser à travers la Vue et les afficher dans une partielle. Aucune de ces sont particulièrement bonnes options, car la responsabilité de rendu d'un élément de contenu ou le chargement de données requis finit par couler dans de multiples domaines et se dupliqué dans les endroits où il est utilisé.
HMVC, ou plus précisément la capacité de distribuer les sous-requêtes à un Contrôleur pour gérer ces responsabilités est la solution la plus évidente. Si vous pensez à ce que vous êtes en train de faire, elle s'inscrit le Contrôleur de structure exactement. Vous avez besoin de charger des données sur les commentaires, et de les afficher au format HTML. Afin de vous envoyer une demande pour les commentaires Contrôleur avec certains paramètres, il interagit avec le Modèle, choisit une Vue, et la Vue affiche le contenu. La seule différence est que vous voulez les commentaires affichés en ligne, ci-dessous l'article du blog de l'utilisateur est affiché au lieu de séparer complètement pleine page de commentaires (mais avec un HMVC approche, vous pouvez réellement servir les demandes internes et externes avec le même contrôleur et "tuer deux oiseaux avec une pierre", comme le dit l'adage). À cet égard, HMVC est vraiment juste un sous-produit naturel de lutter pour une augmentation de code de la modularité, réutilisation, et de maintenir une meilleure séparation des préoccupations. C'est le point de vente de HMVC.
Ainsi, alors que Sam de Freyssinet TechPortal article sur la mise à l'échelle avec HMVC est intéressant de réfléchir, il n'est pas là de 90% des personnes qui utilisent HMVC cadres vont devenir réel, pratique, au jour le jour des avantages.