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

ThinkPHP 模板輸出機制深度解析:從入門到進階

     編輯:PHP 相關知識

核心架構

ThinkPHP 採用 MVC 架構,每個 xxxAction.class.php 對應一個應用模組,其中的方法對應操作。輸出流程:控制器賦值 → 模板引擎解析 → 輸出 HTML。

基礎輸出流程

1. 控制器賦值

class IndexAction extends Action {
    public function index() {
        $value = 'Hello, ThinkPHP';
        $this->assign('name', $value);  // 方式一
        $this->name = $value;           // 方式二(等效)
        $this->display();               // 輸出對應模板
    }
}

2. 模板檔案 Tpl/default/Index/index.html




    {$name}


    測試輸出:{$name}

3. 關鍵語法

  • {$變數名}:輸出標量變數
  • {$array.key} 或 {$array['key']}:輸出陣列元素
  • {$obj->property}:輸出物件屬性

進階賦值技巧

批次賦值陣列

$data = [
    'name'  => 'ThinkPHP',
    'email' => 'contact@thinkphp.cn',
    'phone' => '400-888-8888',
];
$this->assign($data);  // 一次賦值多個變數

賦值整個陣列供模板遍歷

$users = [
    ['name' => '張三', 'email' => 'zhang@example.com'],
    ['name' => '李四', 'email' => 'li@example.com'],
];
$this->assign('users', $users);

    

{$vo.name} - {$vo.email}

模板標籤系統

volist 迴圈標籤


    
        {$i}           
        {$vo.name}
        {$vo.email}
        啟用停用
    

iterate 簡易迴圈(舊版)


    {$vo}

條件判斷標籤


    VIP 會員

    普通會員

    訪客



    待付款
    已付款
    已發貨
    其他

模板佈局與繼承

佈局模板 Tpl/default/Layout/layout.html




    {$seo_title|default='預設標題'}
    


    
{$header|default=''}
{__CONTENT__}
{$footer|default=''}

子模板指定佈局

// 控制器
public function index() {
    $this->assign('seo_title', '首頁 - 我的網站');
    $this->display('Index:index', 'Layout/layout');  // 指定佈局
}

模板變數修飾符

修飾符說明範例
default預設值{$name|default='訪客'}
strtolower轉小寫{$email|strtolower}
date格式化日期{$time|date='Y-m-d H:i'}
substr截取字串{$content|substr=0,100}
raw不轉義 HTML{$html|raw}
###自訂函式{$text|my_helper}

最佳實踐建議

  1. 控制器只負責邏輯與賦值,模板只負責顯示
  2. 大量資料使用分頁,避免模板渲染超時
  3. 啟用模板快取:'template_cache_on' => true(生產環境)
  4. 自訂標籤庫:封裝常用 UI 元件(分頁、表單、表格)
  5. 嚴格區分邏輯與視圖:複雜判斷移至控制器或自訂修飾符
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved