Maison > développement back-end > Problème PHP > Comment utiliser le moteur de modèles php smarty ?

Comment utiliser le moteur de modèles php smarty ?

coldplay.xixi
Libérer: 2023-03-01 20:28:02
original
2384 Les gens l'ont consulté

Utilisation du moteur de modèles php smarty : tout d'abord, téléchargez-le et installez-le depuis le site officiel de Smarty ; puis définissez les membres dans la bibliothèque de classes Smarty. Enfin, tous les accès à Smarty peuvent être basés sur des variables.

Comment utiliser le moteur de modèles php smarty ?

Utilisation du moteur de modèles php smarty :

Présentation :

Smarty est l'un des nombreux moteurs de modèles en PHP. Il s'agit d'une bibliothèque de classes écrite sur la base de PHP.

Avantages de Smarty :

1. Optimiser la vitesse d'accès au site Web ;

2. Conception et programme front-end Web séparés ; Installation de Smarty

1. Vous devez télécharger la dernière version de Smarty depuis le site officiel de Smarty http://www.smarty.net/download.php Par exemple, la version téléchargée est : Smarty-2.6. .18 .tar.tar;

2. Décompressez le package compressé

et vous trouverez de nombreux fichiers et dossiers À l'exception du dossier libs, supprimer tous les autres est inutile ; > 3. Lorsque vous appelez le moteur de modèles Smarty, vous devez d'abord utiliser l'instruction require de PHP pour charger le fichier

.

Smarty-2.6.18.tar.tar

3. Paramètres par défaut de la bibliothèque de classes Smarty

libs/Smarty.class.php

exigent Après avoir entré le fichier

, si vous devez définir les membres dans la bibliothèque de classes Smarty, il y a deux méthodes : L'une consiste à le modifier directement dans le fichier ; l'autre consiste à le re-spécifier après avoir initialisé la bibliothèque de classes, et cette dernière est généralement utilisée. Ce qui suit est une explication des attributs des membres dans la bibliothèque de classes Smarty :

1,

 : définissez le répertoire dans lequel les fichiers de modèles du site Web sont stockés. Le répertoire par défaut est templatesSmarty.class.phpSmarty.class.php. 2,

: Définissez le répertoire dans lequel les fichiers compilés sont stockés sur le site Web. Le répertoire par défaut est templates_c

$template_dir3,

: Définissez le répertoire utilisé pour stocker les fichiers de configuration spéciaux pour les modèles. configs

$compile_dir4,

 : utilisé pour la variable de terminaison gauche dans le modèle, la valeur par défaut est '{'

$config_dir5,

 : utilisé pour la variable de terminaison droite dans le modèle , la valeur par défaut est '}'

$left_delimiter

4. Utilisation de variables :

$right_delimiter

Tous les accès dans Smarty sont basés sur des variables.

Exemple d'idée : Le fichier principal introduit le fichier de configuration d'initialisation du modèle (init.inc.php) et une classe, et attribue des valeurs aux variables du modèle à afficher.

Tout d'abord, définissez le fichier

comme fichier de configuration initial du modèle Smarty

init.inc.php
<?php
  define(&#39;ROOT_PATH&#39;, dirname(__FILE__)); //定义网站根目录
  require ROOT_PATH.&#39;/libs/Smarty.class.php&#39;; //载入 Smarty 文件
  $_tpl = new Smarty();      //实例化一个对象
  $_tpl->template_dir = ROOT_PATH.&#39;/tpl/&#39;; //重新设置模板目录为根目录下的 tpl 目录
  $_tpl->compile_dir = ROOT_PATH.&#39;./com/&#39;; //重新设置编译目录为根目录下的 com 目录
  $_tpl->left_delimiter = &#39;<{&#39;;   //重新设置左定界符为 &#39;<{&#39;
  $_tpl->right_delimiter = &#39;}>&#39;;    //重新设置左定界符为 &#39;}>&#39;
?>
Copier après la connexion

fichier principal

<?php
  require &#39;init.inc.php&#39;; //引入模板初始化文件
  require &#39;Persion.class.php&#39;; //载入对象文件
  global $_tpl;
  $title = &#39;This is a title!&#39;;
  $content = &#39;This is body content!&#39;;
  /*
  * 一、从 PHP 中分配给模板变量;
  * 动态的数据(PHP从数据库或文件,以及算法生成的变量)
  * 任何类型的数据都可以从PHP分配过来,主要包括如下
  * 标量:string、int、double、boolean
  * 复合:array、object
  *   NULL
  * 索引数组是直接通过索引来访问的
  * 关联数组,不是使用[关联下标]而是使用 . 下标的方式
  * 对象是直接通过->来访问的
  * */
  $_tpl->assign(&#39;title&#39;,$title);
  $_tpl->assign(&#39;content&#39;,$content); //变量的赋值
  $_tpl->assign(&#39;arr1&#39;,array(&#39;abc&#39;,&#39;def&#39;,&#39;ghi&#39;));  //索引数组的赋值
  $_tpl->assign(&#39;arr2&#39;,array(array(&#39;abc&#39;,&#39;def&#39;,&#39;ghi&#39;),array(&#39;jkl&#39;,&#39;mno&#39;,&#39;pqr&#39;))); //索引二维数组的赋值
  $_tpl->assign(&#39;arr3&#39;,array(&#39;one&#39;=>&#39;111&#39;,&#39;two&#39;=>&#39;222&#39;,&#39;three&#39;=>&#39;333&#39;)); //关联数组的赋值
  $_tpl->assign(&#39;arr4&#39;,array(&#39;one&#39;=>array(&#39;one&#39;=>&#39;111&#39;,&#39;two&#39;=>&#39;222&#39;),&#39;two&#39;=>array(&#39;three&#39;=>&#39;333&#39;,&#39;four&#39;=>&#39;444&#39;))); //关联二维数组的赋值
  $_tpl->assign(&#39;arr5&#39;,array(&#39;one&#39;=>array(&#39;111&#39;,&#39;222&#39;),array(&#39;three&#39;=>&#39;333&#39;,&#39;444&#39;))); //关联和索引混合数组的赋值
  $_tpl->assign(&#39;object&#39;,new Persion(&#39;小易&#39;, 10)); //对象赋值
  //Smarty 中数值也可以进行运算(+-*/^……)
  $_tpl->assign(&#39;num1&#39;,10);
  $_tpl->assign(&#39;num2&#39;,20);
  $_tpl->display(&#39;index.tpl&#39;);
?>
Copier après la connexion
init.inc.phpfichier principal

fichier modèle

(Placer dans le répertoire /tpl/)index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title><{$title}></title>
  </head>  <body>
    变量的访问:<{$content}>
    <br />
    索引数组的访问:<{$arr1[0]}> <{$arr1[1]}> <{$arr1[2]}>
    <br />
    索引二维数组的访问: <{$arr2[0][0]}> <{$arr2[0][1]}> <{$arr2[0][2]}> <{$arr2[1][0]}> <{$arr2[1][1]}> <{$arr2[1][2]}>
    <br />
    关联数组的访问:<{$arr3.one}> <{$arr3.two}> <{$arr3.three}>
    <br />
    关联二维数组的访问:<{$arr4.one.one}> <{$arr4.one.two}> <{$arr4.two.three}> <{$arr4.two.four}>
    <br />
    关联和索引混合数组的访问:<{$arr5.one[0]}> <{$arr5.one[1]}> <{$arr5[0].three}> <{$arr5[0][0]}>
    <br />
    对象中成员变量的访问:<{$object->name}> <{$object->age}>
    <br />
    对象中方法的访问:<{$object->hello()}>
    <br />
    变量的运算:<{$num1+$num2}>
    <br />
    变量的混合运算:<{$num1+$num2*$num2/$num1+44}>
    <br />
  </body>
</html>
Copier après la connexion

index.php

<?php
  class Persion {
   public $name; //为了访问方便,设定为public
   public $age;
   //定义一个构造方法
   public function __construct($name,$age) {
     $this->name = $name;
     $this->age = $age;
   }
   //定义一个 hello() 方法,输出名字和年龄
   public function hello() {
     return &#39;您好!我叫&#39;.$this->name.&#39;,今年&#39;.$this->age.&#39;岁了。&#39;;
   }
 }
?>
Copier après la connexion
index.tplRésultats d'exécution :

变量的访问:This is body content!
索引数组的访问:abc def ghi
索引二维数组的访问: abc def ghi jkl mno pqr
关联数组的访问:111 222 333
关联二维数组的访问:111 222 333 444
关联和索引混合数组的访问:111 222 333 444
对象中成员变量的访问:小易 10
对象中方法的访问:您好!我叫小易,今年10岁了。
变量的运算:30
变量的混合运算:94
Copier après la connexion

Persion.class.phpRecommandations d'apprentissage associées :

Programmation PHP du débutant au maître

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal