我正在嘗試創建一個小模板系統,並且有一個函數可以遍歷一系列項目。 目前我使用的輸出緩衝功能,幷包括所以我可以加載模板文件,而它有範圍的類。php,模擬include?緩存系統
function loadTemplate($name, $vars) {
$buf = '';
$path = $name . '.html';
if (file_exists($path)) {
$this->vars = $vars;
ob_start();
include($path);
$buf = ob_get_clean();
}
return $buf;
}
我只是想知道如果我可以在初始模板存儲在數組中,然後讓它運行(好像它被列入),同時保持範圍,等等。
function loadTemplate($name, $vars) {
$buf = $template = '';
if (isset($this->cache[$name]))
$template = $this->cache[$name];
else {
$path = $name . '.html';
$template = file_get_contents($path);
$this->cache[$name] = $template;
}
//Exec template here with scope.
}
還是我只是被迂腐,並試圖微優化:)
模板系統在PHP多餘的。 PHP本身就是一個模板引擎,你爲什麼要爲它增加更多的開銷? – NullUserException 2010-08-19 13:42:34
可能是因爲PHP是一個相當複雜的模板語言,通常PHP模板代碼看起來比較乾淨的模板系統更可怕。在我工作的公司中,很多webdesigners根本無法用PHP處理非常好的工作。如果像這樣使用'
我只是試圖從代碼中分離內容,因此可以在不影響用戶定製的情況下應用更新。 – Alex 2010-08-19 14:05:14