模板控制
建立一个功能类 Template
,组织模板基本逻辑。
基本功能
- 输出 php 文件,静态 HTML 文件控制
- 输入模板文件名+变量字典,输出 php 文件
- 如果启用缓存,则继续输出 HTML 文件
简单实现
输出逻辑
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| public function show($key) { $tmpl_path = $this->templateFile($key);
if(!is_file($tmpl_path)) { exit('找不到对应的模板'); }
$cacheFile = $this->cacheFile($key);
if($this->needCacheWithKey($key)) { readfile($cacheFile); $this->debug['cached'] = 'true'; } else { $this->debug['cached'] = 'false';
if($this->needCache()) { ob_start(); }
{ $compileTool = new CompileClass($tmpl_path, $this->arrayConfig); $content = $compileTool->compile(); $compileFile = $this->compiledFile($key) . md5($content); if(!is_file($compileFile)) { $compileTool->saveToDisk($compileFile); } include $compileFile; }
if($this->needCache()) { $message = ob_get_contents(); file_put_contents($cacheFile, $message); } }
$this->debug['spend'] = microtime(TRUE) - $this->debug['begin']; $this->debug['count'] = count($this->valueMap); $this->debugInfo(); }
|
重载方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| public function getValue($key, $default_value) { if(array_key_exists($key, $this->valueMap)) { return $this->valueMap[$key]; } else { return $default_value; } }
public function __set($key, $value) { $this->$key = $value; }
public function __get($key) { if(array_key_exists($key, $this->valueMap)) { return $this->valueMap[$key]; } else { return NULL; } }
public function printValueWithKey($key, $default_value = '') { $value = $this->getValue($key, $default_value); echo $value; }
|