首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

Smarty 模板引擎入門教程(一):模板設計篇

     編輯:PHP 綜合知識

什麼是 Smarty?

Smarty 是 PHP 編寫的模板引擎,核心目標:邏輯與表現分離。程序員專注業務邏輯,美工專注頁面設計,雙方互不干擾,團隊協作效率最大化。

核心優勢

優勢說明
速度編譯型,運行時轉為 PHP+HTML 混合代碼,二次訪問直接執行編譯產物
編譯機制模板變更才重新編譯,無變更直接執行緩存
緩存技術輸出 HTML 靜態化,caching=true 時直接服務靜態文件
插件系統自定義修飾符、函數、塊函數、資源插件
模板邏輯支持 {if}/{elseif}/{else}/{endif} 等控制結構

不適用場景

  • 實時性極高數據(股票行情等),緩存機制反而拖慢響應
  • 極簡小項目(一人兼前後端),引入框架得不償失

安裝部署

  1. 要求 PHP 4.0.6+
  2. 下載 官方包,將 Libs/ 目錄文件複製至項目 comm/ 目錄
  3. 高級安裝參考官方手冊

模板語法核心

默認擴展名 .tpl(可改為 .html),定界符默認 { }(建議改為 <{ }> 避免與 JS 衝突)。

實例 1:基礎模板 index.tpl

{* 註釋:Smarty 註釋不輸出到頁面 *}
{include file="header.tpl"}{* 頁面頭 *}
大家好,我叫{$name},歡迎閱讀我的 Smarty 學習材料。
{include file="foot.tpl"}{* 頁面尾 *}

語法解析

  • {* *}:模板註釋,編譯時剔除
  • {include file="xxx.tpl"}:模板包含,等價於內容內聯
  • {$name}:模板變量,對應 PHP $smarty->assign('name', '李曉軍')

實例 2:變量修飾符

{$title|upper|truncate:20:"..."}
{* 大寫 + 截取 20 字 + 省略號 *}

實例 3:條件判斷

{if $user.logged}
    歡迎回來,{$user.name}!
{elseif $user.registered}
    請登錄
{else}
    註冊體驗更多功能
{/if}

實例 4:循環輸出

{section name=i loop=$articles}
    <h3>{$articles[i].title}</h3>
    <p>{$articles[i].summary|truncate:100}</p>
{/section}

掌握以上核心語法,即可開始高效的模板開發。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved