Quelle est la meilleure pratique à utiliser lors de l'utilisation de PHP et HTML?
J'ai été la conception de sites web pour un certain temps maintenant, mais il y a une chose que je n'ai jamais été tout à fait sûr de lors de l'utilisation de PHP et de HTML. Est-il préférable d'avoir l'ensemble du document en PHP et echo
HTML comme ceci:
<?php
doSomething();
echo "<div id=\"some_div\">Content</div>";
?>
Ou avoir un fichier HTML comme si et seulement ajouter dans le PHP:
<html>
<body>
<?php doSomething(); ?>
<div id="some_div">Content</div>
</body>
</html>
Il semble plus propre à echo
HTML, surtout si beaucoup de PHP est utilisé tout au long de la page, mais cela perd toute la mise en forme de l'HTML, c'est à dire des couleurs dans l'IDE, etc.
source d'informationauteur Adam Holmes
Vous devez vous connecter pour publier un commentaire.
Il ya des opinions divergentes sur ce point. Je pense qu'il y a deux bonnes façons:
Utiliser un moteur de template comme Smarty qui sépare complètement le code et la présentation.
Utilisez votre deuxième exemple, mais lors du mélange de PHP dans le HTML, seulement des variables de sortie. Faire le tout de la logique de code dans un bloc avant de sortir quoi que ce soit, ou dans un fichier distinct. Comme:
La plupart à part entière de l'application des cadres d'apporter leurs propres styles de faire cela; dans ce cas, il est généralement préférable de suivre le style fourni.
Je pense que cela dépendra de votre groupe ou de votre propre décidé convention. Et il peut et devrait varient en fonction du type de fichier que vous travaillez. Si vous suivez le modèle MVC ensuite votre point de vue devrait être le dernier. Si vous écrivez une classe ou certains non-sortie de script/code, alors vous devriez utiliser l'ancien.
Essayer de garder une séparation de l'affichage ou de mise en forme de la production et de la logique qui fournit les données. Par exemple, disons que vous avez besoin de faire un rapide page qui exécute une requête simple et sorties des données. Dans ce cas (où il n'y a pas d'autre de l'infrastructure existante ou cadre), vous pourriez place de la logique dans un include ou en haut ou en bas du fichier. Exemple:
Ou vous pouvez placer de la logique et de la définition d'une fonction dans un fichier inclus, ou à la fin du fichier.
Maintenant, si vous êtes en produisant une sorte de classe qui a sortie (il ne devrais vraiment pas) puis vous l'écho de l'HTML ou le retour de la méthode appelée. De préférence, le retourner de sorte qu'il peut être sortie à chaque fois et aussi l'exécutant, comme.
La coloration syntaxique est un important avantage de la deuxième méthode, comme vous l'avez dit. Mais aussi, si vous avez de bonnes pratiques suivantes, où la logique et la présentation sont séparés, vous trouvera naturellement que vos fichiers contenant du code HTML sont presque entièrement en HTML, qui, ensuite, naturellement, conduit à votre deuxième méthode de nouveau. C'est la norme pour MVC cadres et assimilés. Vous aurez un tas de fichiers qui sont tous, en PHP, en faisant de la logique, et puis quand c'est fait qu'ils vont inclure un fichier de présentation qui est la plupart du temps HTML avec un peu de PHP.
Simple:
Plus de PHP - proche HTML en PHP. Lorsque vous générez un code HTML en PHP, quand vous faites quelque chose comme une classe, il est donc préférable d'en faire écho.
Moins PHP - près de PHP dans le HTML. C'est des trucs comme vient de mettre à vars dans les champs de HTML des trucs, comme des formulaires... Et tel.
Si vous le pouvez, utiliser un moteur de template à la place.
Bien qu'il est un peu plus facile au premier abord de mélanger votre code HTML et PHP, en les séparant rend les choses beaucoup plus facile à entretenir plus tard.
Je voudrais vous recommandons de vérifier TemplateLite qui est basé sur Smarty mais est un peu plus léger.
La meilleure approche consiste à séparer le HTML du PHP à l'aide du système de template ou au moins une sorte de squelette HTML comme:
Chaque nœud représente un modèle de fichier par exemple main.php, hrader.php et ainsi de suite. Que vous devez séparer le code PHP à partir des modèles que quelque chose comme functions.php et fineally utilisez votre deuxième approche pour les fichiers de modèle et de garder les fonctions propres des "echos" et HTML.
Ça dépend du contexte. Si vous générez beaucoup de HTML avec des attributs, vous allez tomber malade d'échapper les guillemets dans les chaînes de PHP. Cependant, il n'est pas nécessaire d'utiliser
?><p><?
au lieu deecho "<p>";
. C'est vraiment juste une question de goût personnel.