Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwende ich die PHP-Smarty-Template-Engine?

Wie verwende ich die PHP-Smarty-Template-Engine?

coldplay.xixi
coldplay.xixiOriginal
2020-07-02 10:04:092307Durchsuche

Verwendung der PHP-Smarty-Vorlagen-Engine: Laden Sie sie zunächst von der offiziellen Website von Smarty herunter und legen Sie dann die Mitglieder in der Smarty-Klassenbibliothek fest. Schließlich kann der gesamte Zugriff auf Smarty auf Variablen basieren.

Wie verwende ich die PHP-Smarty-Template-Engine?

Verwendung der PHP-Smarty-Template-Engine:

1. Übersicht:

Smarty ist eine der vielen Template-Engines in PHP. Es handelt sich um eine auf PHP basierende Klassenbibliothek.

Die Vorteile von Smarty:

1. Optimieren Sie die Geschwindigkeit des Website-Zugriffs.

2. Smarty-Installation

1. Sie müssen die neueste Smarty-Version von der offiziellen Website von Smarty herunterladen: http://www.smarty.net/download.php. Die heruntergeladene Version ist beispielsweise: Smarty-2.6 .18 .tar.tar;

2. Entpacken Sie das komprimierte Paket und Sie werden viele Dateien und Ordner finden, das Löschen aller anderen ist nutzlos > 3. Wenn Sie die Smarty-Template-Engine aufrufen, sollten Sie zunächst die require-Anweisung von PHP verwenden, um die

-Datei zu laden.

Smarty-2.6.18.tar.tar3. Standardeinstellungen der Smarty-Klassenbibliothek

libs/Smarty.class.phperforderlich. Wenn Sie nach Eingabe der

-Datei die Mitglieder in der Smarty-Klassenbibliothek festlegen müssen, gibt es diese Zwei Methoden: Eine besteht darin, es direkt in der Datei

zu ändern. Die andere besteht darin, es nach der Initialisierung der Klassenbibliothek erneut anzugeben. Letztere wird im Allgemeinen verwendet. Im Folgenden finden Sie eine Erläuterung der Mitgliedsattribute in der Smarty-Klassenbibliothek: 1,

: Legen Sie das Verzeichnis fest, in dem Vorlagendateien auf der Website gespeichert werden. Das Standardverzeichnis ist templates

Smarty.class.php 2, Smarty.class.php: Legen Sie das Verzeichnis fest, in dem kompilierte Dateien auf der Website gespeichert werden. Das Standardverzeichnis ist templates_c.

3, $template_dir: Definieren Sie das Verzeichnis, in dem spezielle Konfigurationsdateien für Vorlagen gespeichert werden configs

4, $compile_dir: wird für die linke Abschlussvariable in der Vorlage verwendet, der Standardwert ist '{'

5, $config_dir: wird für die rechte Abschlussvariable in der Vorlage verwendet , der Standardwert ist '}'

$left_delimiter4. Verwendung von Variablen:

$right_delimiterDer gesamte Zugriff in Smarty basiert auf Variablen.

Beispielidee: Die Hauptdatei führt die Konfigurationsdatei für die Vorlageninitialisierung (init.inc.php) und eine Klasse ein und weist den anzuzeigenden Variablen in der Vorlage Werte zu. Legen Sie zunächst die

-Datei als anfängliche Konfigurationsdatei der Smarty-Vorlage

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;
?>

Hauptdatei

<?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;);
?>

Hauptdatei init.inc.phpVorlagendatei (Im Verzeichnis /tpl/ ablegen)

<!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>

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;;
   }
 }
?>

Ausführungsergebnisse: index.php

变量的访问: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
index.tpl

Verwandte Lernempfehlungen:

PHP-Programmierung Vom Anfänger bis zum MeisterPersion.class.php

Das obige ist der detaillierte Inhalt vonWie verwende ich die PHP-Smarty-Template-Engine?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn