Le principe du moteur de template PHP est une solution efficace pour séparer la couche vue et la couche modèle, permettant une meilleure division du travail et une meilleure collaboration entre le front et le back end. Il vient du modèle MVC classique, qui. est, [model layer-view layer-control [Controller Model], qui sépare les codes M et V, afin que le même programme puisse utiliser des représentations différentes.
Le principe du moteur de template php est :
1. >
L'idée du moteur de modèles vient du modèle
classique, c'est-à-dire couche modèle - couche vue - modèle contrôleur. MVC existait à l'origine dans les programmes de bureau, M fait référence au modèle de données, V fait référence à l'interface utilisateur et C fait référence au contrôleur. Le but de l'utilisation de MVC est de séparer les codes M et V afin que le même programme puisse utiliser différentes formes de présentation. MVC
Avec la popularité du Web, ce modèle a été introduit dans le développement Web. À l'heure actuelle, V (couche de vue), communément appelée modèle, réalise la séparation de la génération de données et de l'affichage des données. Les premières vues contrôlaient généralement l'interface par des éléments HTML. Avec le développement d'Internet, certaines nouvelles technologies de présentation (telles que Flex, etc.) sont devenues populaires, séparant les données et la présentation, et un ensemble de données peut être utilisé pour plusieurs couches de présentation. . Il n'est pas nécessaire de modifier le code de la couche logique. Par exemple, les données d'une liste d'articles de blog peuvent être générées dans la couche M (couche modèle), puis différentes technologies de couche de présentation peuvent être utilisées pour afficher les données dans des pages Web traditionnelles, des applications RIA et des applications mobiles sans modifier la logique. code de couche Séparation du front-end et du back-end.
De plus, la popularité de la technologie
et l'application généralisée de la bibliothèque Jquery ont amélioré les premières écritures mixtes de codes HTML, Javascript et PHP. L'application de la technologie AJAX sépare la demande, la génération et l'affichage des données, et favorise la séparation de la couche de présentation (V) et de la couche de code. AJAX
Le moteur de modèles est une solution efficace pour séparer la couche de vue et la couche de modèle, permettant une meilleure division du travail et une meilleure collaboration entre le front-end et le back-end. Le développement PHP est passé par plusieurs étapes de développement, du mixage front-end et back-end, à la forte promotion des moteurs de templates (représentés par Smarty), jusqu'au retour actuel à la nature, et même à la remise en question de la nécessité de l'existence de template PHP. moteurs.
Est-il nécessaire d'utiliser un moteur de template en PHP ? Quel est le principe du moteur de template ? Pourquoi Smarty est-il si populaire et suscite-t-il autant de controverses dans la communauté PHP aujourd'hui ? Ce sont des questions discutées ensuite.
2 L'idée de superposition de code
En tant que langage de script léger et flexible, PHP est très adapté au développement Web, qui a des cycles de développement courts, des changements rapides dans les exigences et met l'accent sur les besoins de l'utilisateur et de l'entreprise. Lorsque PHP a été développé au début, il s'agissait généralement d'un mélange de code PHP et de HTML. Les opérations de base de données, les jugements logiques, la génération de code HTML et même le code Javascript peuvent être vus partout dans le code. Pour les petits projets, cette méthode de codage peut rapidement répondre aux exigences. Cependant, à mesure que le projet se développera, la logique frontale deviendra de plus en plus complexe. Cette méthode d'écriture complètement mixte entraînera inévitablement des problèmes tels qu'une mauvaise lisibilité du code et des difficultés de maintenance ultérieure.
Dans les premiers jours du développement PHP, on pourrait écrire :
<html>
<head>
<meta http-equiv="content-type"content="text/html;charset=utf-8">
<title>最原始的PHP编码风格 - 李苦李</title>
</head>
<body>
<table>
<tr>
<td>ID</td>
<td>姓名</td>
</tr>
<?php
mysql_connect("localhost","admin","password")or
die("Could not connect:".mysql_error());
mysql_select_db("user_db");
$result= mysql_query("select id,username from user");
while($row= mysql_fetch_array($result)) {
echo"<tr><td>".$row['id']."</td><td>"
.$row['username']."</td></tr>";
}
mysql_free_result($result);
?>
</table>
<?php
//其他功能模块
?>
</body>
</html>
Copier après la connexion
De toute évidence, le code ci-dessus est extrêmement médiocre en termes de lisibilité, de maintenabilité et de réutilisation du code. Vous devez trouver un moyen de séparer la génération et l'affichage des données. Généralement, la façon la plus simple de penser est de placer le code qui interagit avec la base de données dans un fichier séparé et la partie qui affiche les données dans un autre fichier. Créez un nouveau fichier
et récupérez les données, comme indiqué dans le code suivant : data.php
<?php
mysql_connect("localhost","admin","password")or
die("Could not connect:".mysql_error());
mysql_select_db("user_db");
$result= mysql_query("select id,username from user");
while($row= mysql_fetch_array($result)) {
$data[] =$row;
}
mysql_free_result($result);
?>
Copier après la connexion
Aucune de ces deux méthodes ne parvient à séparer le code PHP et le code HTML, mais la deuxième méthode donne de meilleurs résultats que la première méthode Séparation de l'acquisition des données et de la présentation des données. Dans la deuxième méthode de traitement, l'un des fichiers est spécifiquement chargé d'interagir avec la base de données, d'obtenir et de traiter les données. Ensuite, il est transmis à un autre fichier pour afficher les données. Ce fichier responsable de l'affichage n'effectue que quelques opérations logiques simples, telles que le bouclage, le jugement, la sortie, etc. Évidemment, la deuxième méthode de traitement est plus facile à maintenir que la première méthode de traitement.
Pour la deuxième méthode de traitement, nous pouvons également utiliser la syntaxe HereDoc pour la rendre plus concise. Le code est le suivant :
<?php
foreach($dataas$value) {
echo<<< TM
<tr><td>$value[id]</td><td>$value[username]</td></tr>;
TM;
}
?>
Copier après la connexion
La deuxième méthode de traitement est le mécanisme de modèle PHP d'origine, qui est. Le mécanisme de modèle actuellement utilisé par certains programmes PHP se caractérise par sa simplicité, sa flexibilité, sa conformité à la syntaxe et aux habitudes d'utilisation de PHP et son faible coût d'apprentissage. L'inconvénient est qu'il ne peut pas implémenter certaines fonctions avancées, telles que la configurabilité, la mise en cache, la création de fichiers modèles indépendants de la syntaxe PHP, etc. J'écrirai ceci ici aujourd'hui et nous résoudrons ces problèmes les uns après les autres dans les articles suivants.
Recommandations d'apprentissage associées : Programmation PHP de l'entrée à la maîtrise
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!