8
votes

Création de modèles HTML à l'aide de PHP

Je suis en train d'apprendre beaucoup sur la manière dont les cadres MVC fonctionnent en regardant autour de vous et d'étudier les personnes existantes. Il semble que chaque cadre que je vois ait une mise en page où chaque méthode de chaque contrôleur possède son propre fichier de modèle. Il y aura donc un modèle de connexion, un modèle de déconnexion, inscrivez-vous, ainsi de suite.

Ma question est, comment et pourquoi créeriez-vous un modèle pour la page entière dans un fichier. Disons que vous vouliez montrer le formulaire de connexion sur plusieurs pages, n'auriez-vous pas à créer le formulaire de connexion pour chaque modèle que vous souhaitez afficher? Ça ne va pas contre le ne pas se répéter la règle (sèche)?

La façon dont je fais des choses jusqu'à présent, j'ai créé des morceaux de modèles de liitle, puis de les combiner pour créer chaque page. Donc au lieu de faire quelque chose comme ça, xxx

je fais cela xxx

comme toujours, je voudrais juste J'aime connaître la bonne façon de le faire, avec comment et pourquoi ... il semble juste aller contre la règle sèche.

Merci


0 commentaires

4 Réponses :


3
votes

Vous devriez consulter les concepts de ' Mise en page ' et ' Voir les aides '. Bien que j'ai lié à la version Zend-cadre de ces concepts, d'autres cadres MVC (et le concept MVC) devraient également les avoir également.

L'idée de base est que votre page 'View' - Par exemple, le formulaire de connexion - est inclus dans la «mise en page» de votre site - le modèle général utilisé sur votre site. Lorsque vous demandez un contrôleur différent, avec une vue différente - par exemple un profil d'utilisateur - cette vue est également incluse dans la même mise en page.

Pour inclure quelque chose comme un formulaire de connexion sur toutes les pages, une aide d'une vue peut être utilisée. Cette vue d'affichage pourrait afficher l'utilisateur actuel ou afficher un formulaire de connexion, en fonction du statut de connexion. Les aides d'affichage peuvent être inclus dans la mise en page ou incluse par le contrôleur spécifique (tant que la structure MVC permet une sorte de segments de rendu nommé).

La méthode "Inclure" à deux étapes fonctionne mieux que l'inclusion linéaire des pièces (y compris l'en-tête, puis le contenu, puis le pied de page - ce que vous faites maintenant), car vos modèles n'ont pas à scinder les étiquettes HTML. Le Guide Zend a un Bon exemple visuel de modèles de vue dans une mise en page.


1 commentaires

Les liens sont cassés



2
votes

Un mot: organisation. Séparer chaque partie de la page permettra à chacun d'entre eux d'être visualisés / édités séparément. Ce concept simple est très bénéfique. Par exemple, toute personne de l'équipe qui souhaite gérer le processus de connexion peut facilement comprendre qu'ils doivent modifier login_form.phtml et ils peuvent être sûrs que l'édition login_form.phtml sera moins susceptibles d'interférer involontairement avec d'autres fonctionnalités.

comme des meilleures pratiques, voici comment je le fais (pas exactement mais similaire). xxx

< Code> myGreenPage.phtml : xxx

user.pcss : xxx

user.pjs : xxx

User.phtml : xxx

login_form.pcss : xxx

login_form.pjs : xxx

Login_form.phtml : xxx

Permettez-moi de vous rappeler que ce n'est pas si exactement ce que je fais (ce que j'utilise oop) donc Peut ne pas exécuter exactement tel quel et vous devrez peut-être le modifier.


0 commentaires

0
votes

Pour ce projet, je travaille sur, toutes les vues sont des modèles XSL. Au lieu de passer des variables à la vue, je génère tout le XML dans le contrôleur et transformez-le avec la vue.

J'aime cette structure car je peux garder tous mes modèles dans un seul fichier et les organiser de toute façon que je veux. C'est aussi un langage de gabarit standard qui est très flexible et a des tonnes de documentation. Cela a très bien fonctionné jusqu'à présent.

Un très bon exemple de cette structure est le wow Armory site Web (voir la source).


0 commentaires

1
votes

Le moyen le plus courant de faire des modèles HTML avec PHP, est d'utiliser l'un de ces moteurs de modèles populaires:

  • Smarty
  • Twig
  • latte
  • Moustache

    Alternativement, vous pouvez simplement mettre des espaces réservés dans votre HTML qui ressemblent à quelque chose comme <% variablename%> . Il suffit de charger votre HTML, faites une regex de recherche de tous les espaces réservés et remplacez-les par les variables correspondantes.


    Alternativement, vous pouvez charger votre HTML, analyser comme un DOM Document < / Strong> puis modifier votre DOM. J'ai créé la bibliothèque Dom Query pour pouvoir le faire avec un Syntaxe ressemblant à jQuery, mais vous pouvez également utiliser Vanilla PHP ou une des autres autres bibliothèques.


    Alternativement, vous pouvez faire des modèles HTML à Frontend avec JavaScript. Si vous souhaitez effectuer des modèles HTML à la fois sur Frontend et Backend, vous voudrez peut-être envisager d'utiliser Moustache < / Strong>, car les modèles de moustache peuvent être utilisés à la fois dans Frontend (avec JavaScript) et dans le backend (avec PHP).


0 commentaires