Maison  >  Article  >  développement back-end  >  Un article détaillant les principes du moteur de template PHP (avec des exemples de code)

Un article détaillant les principes du moteur de template PHP (avec des exemples de code)

藏色散人
藏色散人avant
2022-08-07 14:59:473587parcourir

Le développement d'un projet Web est généralement divisé en deux parties. Une partie est l'interface graphique, c'est-à-dire l'interface et l'art, écrits en HTML, CSS, JS, et l'autre partie est la logique métier, c'est-à-dire les programmes et fonctions, écrits en PHP. . Le moteur de modèle est le "pont" qui relie les deux parties. Il peut être compris comme une classe PHP, qui définit de nombreuses méthodes pour charger la sortie originale de PHP dans le style d'interface, puis la générer.

Le code écrit avant d'utiliser les modèles est comme ceci :

<?php

$title = “标题”;

$content = “内容”;

?>

<html>

<head><title><?php echo $title; ?></title></head>

<body><?php echo $content; ?></body>

</html>

De cette façon, l'art et la logique ne sont pas séparés. En termes simples, les programmeurs PHP doivent non seulement écrire des programmes mais aussi maîtriser l'art, donc c'est souvent très difficile. cela doit être combiné. Les deux parties fonctionnent séparément.

Créons vous-même un moteur de modèles simple à titre d'exemple pour mieux comprendre les principes des moteurs de modèles.

Comme mentionné précédemment, le développement d'un projet Web est divisé en deux parties : l'interface graphique et la logique métier, nous créons donc deux dossiers, l'un nommé "templates" pour stocker les modèles, créons un nouveau fichier tpl.html et l'autre nommé "PHP " , qui stocke la logique métier et crée un nouveau fichier index.php.

Le code du fichier tpl.html ressemble généralement à ceci :

<html>

<head><title><{$title}></title></head>

<body><{ $content;}></body>

</html>

On peut voir que par rapport au code précédent, tpl.html n'a que du code html et aucun code php, mais de nouvelles balises ont été ajoutées. défini , le contenu à l'intérieur ne peut être reconnu qu'après avoir été compilé par le moteur de modèles, et les fichiers compilés sont stockés dans le dossier "templates_c". Ce fichier est principalement utilisé pour la conception d'interfaces, et utilisera un grand nombre de technologies CSS, JS et autres.

À l'heure actuelle, tpl.html et index.php sont toujours séparés et n'interfèrent pas l'un avec l'autre, ils ont donc besoin d'une connexion "pont", c'est-à-dire le moteur de modèle, qui est en fait une classe PHP, afin que vous puissiez créez un mytpl.class.php ici les fichiers PHP.

Le fichier mytpl.class.php définit généralement une classe MyTpl. Un tableau tpl_var[] doit être défini dans la classe pour stocker les paramètres des balises de contenu personnalisées dans tpl.html. L'objectif principal de ces méthodes est de convertir les balises de contenu non reconnues dans tpl.hml en instructions PHP, puis de les écrire dans tpl_c.html sous le dossier "templates_c". Ce processus est appelé compilation.

Habituellement, le code du fichier tpl_c.html est comme ceci :

<html>

<head><title><?php echo $this->tpl_var[“title”]; ?></head>

<body><?php echo $this->tpl_var[“content”]; ?}></body>

</html>

Vous pouvez voir que le code ci-dessus peut être reconnu, car les balises de contenu personnalisées ont été remplacées par des instructions PHP, mais quelles sont les valeurs​​ du titre et du contenu Nous ne savons toujours pas si le index.php créé auparavant entrera en jeu à ce moment-là

index.php Habituellement, son code est comme ceci :

include  “tpl.class.php文件”;//加载模板引擎

$tpl = new MyTpl();//实例化一个模板类

$title = “标题”;

$content = “内容”;

$tpl->assign(“title”,$title);//调用模板类中的方法,分配变量

$tpl->assign(“content”,$content);

$tpl->display(“tpl.html”);//调用模板类中的方法,用于显示编译后的内容

Le code ci-dessus n'est qu'un simple code de description. , et les valeurs des variables peuvent être directement définies ou obtenues à partir de la base de données. De plus, ce fichier peut également être utilisé pour écrire certains programmes PHP complexes, ce qui est la logique métier mentionnée précédemment.

De cette façon, le travail de l'interface graphique et de la logique métier est séparé. Les concepteurs artistiques n'ont besoin que d'écrire des fichiers modèles pour modifier l'interface Web, tandis que les programmeurs PHP peuvent se concentrer sur l'écriture de leurs propres programmes.

Les entreprises ont généralement leurs propres moteurs de modèles, et il n'est généralement pas nécessaire d'écrire le moteur de modèles vous-même, car il existe déjà des moteurs de modèles très matures sur le marché, comme Smarty. Il suffit de savoir comment l'utiliser.

Apprentissage recommandé : "Tutoriel vidéo PHP"

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer