ThinkPHP 系統常量速查表
ThinkPHP 定義了大量系統常量,掌握它們能極大提升模板開發、路徑引用、多模塊部署的效率。以下為核心常量分類總結:
1. 路徑與 URL 常量
| 常量 | 含義 | 典型輸出示例 |
__ROOT__ | 網站根目錄地址 | https://domain.com |
__APP__ | 入口文件地址 | https://domain.com/index.php |
__URL__ | 當前模塊地址 | https://domain.com/index.php/Home |
__SELF__ | 當前完整 URL | https://domain.com/index.php/Home/Index/index |
__ACTION__ | 當前操作地址 | https://domain.com/index.php/Home/Index/index |
__CURRENT__ | 當前模塊模板目錄 | /Home/Tpl/default/Index/ |
2. 專案結構常量
| 常量 | 含義 | 備註 |
APP_PATH | 當前專案目錄 | 通常為 ./Application/ |
APP_NAME | 當前專案名稱 | 如 Home |
APP_TMPL_PATH | 專案模板目錄 | ./Application/Home/Tpl/ |
APP_PUBLIC_PATH | 專案公共資源目錄 | CSS/JS/圖片存放處 |
CONFIG_PATH | 配置文件目錄 | ./Application/Common/Conf/ |
COMMON_PATH | 公共模塊目錄 | ./Application/Common/ |
DATA_PATH | 數據緩存目錄 | ./Runtime/Data/ |
LOG_PATH | 日誌文件目錄 | ./Runtime/Logs/ |
LANG_PATH | 語言包目錄 | ./Application/Common/Lang/ |
TMPL_PATH | 系統模板目錄 | ./ThinkPHP/Tpl/ |
WEB_PUBLIC_PATH | Web 公開資源目錄 | 多應用共享靜態資源 |
3. 運行時信息常量
| 常量 | 含義 |
ACTION_NAME | 當前操作名稱 |
GROUP_NAME | 當前分組名稱 |
IS_CGI | 是否 CGI 模式 |
IS_WIN | 是否 Windows 環境 |
LANG_SET | 當前語言集 |
模板中優雅使用示例
控制器中動態獲取路徑
// 獲取上傳目錄絕對路徑
$upload_dir = APP_PUBLIC_PATH . 'Uploads/';
// 獲取配置文件路徑
$config_file = CONFIG_PATH . 'db.php';
// 判斷運行環境
if (IS_WIN) {
// Windows 路徑處理
}
避坑指南
- 區分 __URL__ 與 __ACTION__:前者指向模塊入口,後者指向具體操作方法
- 模板輸出常量需開啟模板引擎解析:配置
'TMPL_PARSE_STRING' => ['__PUBLIC__' => __ROOT__ . '/Public']
- 不要硬編碼路徑:專案遷移、二級目錄部署時會失效
- Runtime 目錄需寫入權限:
DATA_PATH、LOG_PATH、CACHE_PATH 必須可寫
ThinkPHP 5/6 版本差異提示
TP5/6 採用 Composer 結構,常量體系簡化:
- 核心路徑通過
app()、root_path、app_path、config_path 等助手函數獲取
- 模板中使用
{:config('view_replace_str.__PUBLIC__')} 或自定義替換變量
- 建議查閱對應版本官方文檔《目錄結構》章節