ThinkPHP 模板引擎內建多種系統常量,自動替換為對應路徑,簡化模板開發。掌握這些常量與自訂替換規則,能讓模板更靈活、可攜。
| 常量 | 替換結果 | 典型用途 |
|---|---|---|
__PUBLIC__ | /Public/ | 網站公共資源 (CSS、JS、圖片) |
__ROOT__ | 網站根目錄 (不含域名) | 生成絕對路徑連結 |
__APP__ | 當前專案入口 URL (如 /index.php) | 表單 action、AJAX 請求網址 |
__URL__ | 當前模組 URL (如 /index.php/User) | 模組內部連結、表單提交 |
__ACTION__ | 當前操作 URL (如 /index.php/User/index) | 當前頁面表單提交 |
__SELF__ | 當前完整頁面 URL | 分享連結、返回當前頁 |
../Public | /專案目錄/Tpl/default/Public/ | 專案模板公共資源 (相對路徑) |
__TMPL__ | /專案目錄/Tpl/default/ | 模板目錄資源引用 |
在專案配置 Conf/config.php 設定:
'TMPL_PARSE_STRING' => [
'__PUBLIC__' => '/Common', // 修改預設公共目錄
'__UPLOAD__' => '/Public/Uploads/', // 新增上傳路徑常量
'__STATIC__' => '/Static/', // 新增靜態資源常量
],
display(); }
public function add() { dump($_POST); }
}
?>
__ROOT__ 代表網站網址
__URL__ 代表當前模組 URL /index.php/User
../Public 代表 /aoli/Tpl/default/Public
__PUBLIC__ 代表項目公共文件目錄 /Public
__TMPL__ 代表當前項目模板目錄 /aoli/Tpl/default/
__APP__ 代表當前項目入口 /index.php
__ACTION__ 代表當前操作 /index.php/User/index
__SELF__ 代表當前 URL /index.php/User/
__UPLOAD__ (自訂常量)
https://localhost/index.php/User/index → 渲染模板,常量自動替換。__URL__/add → 實際 POST 到 /index.php/User/add。UserAction::add() 接收處理,dump($_POST) 輸出結果。__PUBLIC__ 放共用庫,__UPLOAD__ 放用戶上傳,__STATIC__ 放版本化靜態資源。TMPL_PARSE_STRING 將常量指向 CDN 域名,模板零修改。善用模板常量與自訂替換,是 ThinkPHP 專案可維護性、可擴展性的關鍵基礎設施。