程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> smarty模板技術,smarty模板

smarty模板技術,smarty模板

編輯:關於PHP編程

smarty模板技術,smarty模板


一、什麼是smarty?
smarty是一個使用php寫出來的模板php模板引擎,它提供了邏輯與外在內容的分離,簡單的講,目的就是要使用php程序員同美工分離,使用的程序員改變程序的邏輯內容不會影響到美工的頁面設計,美工重新修改頁面不會影響到程序的程序邏輯,這在多人合作的項目中顯的尤為重要。

二、smarty優點:
1. 速度:采用smarty編寫的程序可以獲得最大速度的提高,這一點是相對於其它的模板引擎技術而言的。

2. 編譯型:采用smarty編寫的程序在運行時要編譯成一個非模板技術的php文件,這個文件采用了php與html混合的方式,在下一次訪問模板時將web請求直接轉換到這個文件中,而不再進行模板重新編譯(在源程序沒有改動的情況下)

3. 緩存技術:smarty選用的一種緩存技術,它可以將用戶最終看到的html文件緩存成一個靜態的html頁,當設定smarty的cache屬性為true時,在smarty設定的cachetime期內將用戶的web請求直接轉換到這個靜態的html文件中來,這相當於調用一個靜態的html文件。

4. 插件技術:smarty可以自定義插件。插件實際就是一些自定義的函數。

5. 模板中可以使用if/elseif/else/endif。在模板文件使用判斷語句可以非常方便的對模板進行格式重排。

三、不適合使用smarty的地方:

1. 需要實時更新的內容。例如像股票顯示,它需要經常對數據進行更新,這類型的程序使用smarty會使模板處理速度變慢。

2. 小項目。小項目因為項目簡單而美工與程序員兼於一人的項目,使用smarty會喪失php開發迅速的優點。

四、smarty安裝及配置:

下載smarty的安裝包解壓後,把libs文件夾放在網站根目錄下,然後創建幾個文件夾
templates       存放模板文件

templates_c    存放編譯後的文件

configs           存放配置文件

cache             存放緩存文件
再創建初始化文件smarty.init.php

<?php
    include "./libs/Smarty.class.php";//包含Smarty類庫所在的文件
    $smarty=new Smarty();//創建一個Smarty類的對象$smarty
    $smarty->template_dir="./templates/";//設置所有模板文件存放目錄
    $smarty->compile_dir="./templates_c/";//設置所有編譯過的模板文件存放目錄
    $smarty->config_dir="./configs/";//設置模板中特殊配置文件存放的目錄
    $smarty->cache_dir="./cache/";//設置存放Smarty緩存文件的目錄
    $smarty->caching=1;//設置開啟Smarty緩存模板功能
    $smarty->cache_lifetime=60*60*24;//設置模板緩存有效時間為1天
    $smarty->left_delimiter='<{';//設置模板語言中的左結束符
    $smarty->right_delimiter='}>';//設置模板語言中的右結束符
?>

五、smarty引擎運行機制:

1、新建模板文件index.tpl及項目中所需的配置文件my.conf,配置文件也可後期補充

<{config_load file="../configs/my.conf"}><!-- 加載配置文件 -->
<html>
    <head>
        <meta charset="utf-8">
        <title><{$title}></title>
    </head>
    <body bgcolor="<{#bgColor#}>">
        <{$content}>
    </body>
</html>

2、新建程序入口文件index.php,引入控制器文件,傳值並分配變量,並顯示模板index.tpl

<?php
    //引入smarty.init.php
    include 'smarty.init.php';
    $smarty->assign("title","我的第一個文件標題");
    $smarty->assign("content","我的第一個文件內容");
    $smarty->display("index.tpl");
?>

3、運行index.php,通過smarty控制器文件會生成一個php格式的編譯文件,當緩存機制未開啟時,浏覽器會讀取這個編譯文件並最終顯示出來。當開啟緩存機制時,smarty控制器會生成一個靜態HTML頁面,即緩存文件com_index.tpl,這樣浏覽器讀取性能更高。具體緩存過程詳見smarty詳細使用教程第9點

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved