PHP 端核心配置代碼
<?php
/*********************************************
* 文件名: index.php
* 作用: 顯示實例程序
* 作者: 大師兄
* Email: teacherli@163.com
*********************************************/
include_once("./comm/Smarty.class.php"); // 載入核心類
$smarty = new Smarty(); // 實例化
// 目錄配置(建議顯式指定,養成良好習慣)
$smarty->template_dir = "./templates"; // 模板目錄
$smarty->compile_dir = "./templates_c"; // 編譯目錄(需寫權限)
$smarty->cache_dir = "./cache"; // 緩存目錄(需寫權限)
$smarty->cache_lifetime = 60 * 60 * 24; // 緩存壽命:1 天(秒)
$smarty->caching = true; // 啟用緩存
// 定界符配置(避免與 JS 衝突)
$smarty->left_delimiter = "<{";
$smarty->right_delimiter = "}>";
// 變量賦值
$smarty->assign("name", "李曉軍");
// 輸出模板
$smarty->display("index.tpl");
?>
關鍵配置項深度解析
| 屬性/方法 | 說明 | 最佳實踐 |
template_dir | 模板文件目錄 | 顯式指定,避免默認值歧義 |
compile_dir | 編譯產物目錄 | Linux 需 chmod 777 或同用戶組寫權限 |
cache_dir | 緩存文件目錄 | 同 compile_dir 權限要求 |
left/right_delimiter | 定界符 | 改為 <{ }> 或 <!--{ }-->,模板中同步修改 |
cache_lifetime | 緩存有效期(秒) | -1 永不過期,0 每次重建,>0 具體秒數 |
caching | 緩存模式 | 0/false 關閉,1/true 用當前 lifetime,2 用創建時 lifetime |
assign() | 變量賦值 | 支持單個、陣列批量、對象屬性 |
display() | 編譯並輸出 | 生產環境建議配合緩存使用 |
程序員必知的 3 大原則
- 文件頭註釋:版權、作者、時間、用途——良好代碼風格的起點
- 顯式配置路徑:不依賴默認值,遷移部署零驚喜
- 定界符隔離:模板中 JS 代碼含
{ } 時必改定界符
調試技巧
$smarty->debugging = true; 開啟調試控制台(彈窗顯示變量、模板、配置)
{$var|@debug_print_var} 模板中斷點輸出變量結構
- 檢查
templates_c/ 編譯產物理解模板編譯邏輯