模板引擎

2018-02-05 10:46 更新

模板引擎特意設(shè)計(jì)得很簡(jiǎn)單,循環(huán),條件判斷等都用貼近原生php去實(shí)現(xiàn)。為什么設(shè)計(jì)得如此簡(jiǎn)單呢?框架本身就是為了大家可以快速開(kāi)發(fā)才誕生的,而現(xiàn)在的開(kāi)源系統(tǒng)中,大部分都有一套自己的模板引擎,學(xué)習(xí)一個(gè)系統(tǒng),又需要去重新學(xué)習(xí)一套模板標(biāo)簽,大大增加了學(xué)習(xí)成本,違背了框架誕生的初衷,故我把模板引擎設(shè)計(jì)得很簡(jiǎn)單,需求復(fù)雜一點(diǎn)的,大家可以也自行完善標(biāo)簽庫(kù)。

模板配置
說(shuō)明:在根目錄里config.php文件中可配置,這里的config.php是全局配置文件,如果想單獨(dú)對(duì)某個(gè)應(yīng)用配置可以把這個(gè)文件移到對(duì)應(yīng)應(yīng)用的根目錄里即可。

//配置代碼如下:  
<?php                   
//APP模板配置
$config['TPL_NAME'] = 'default';//模板默認(rèn)風(fēng)格包名
$config['TPL_CACHE_TIME'] = 1 ;//模板緩存時(shí)間 單位 秒
?>  
//還有其他一些框架不建議修改的配置如下
<?php                   
$config['TPL_SPACE'] ='template';//模板存放文件夾名,一般不需要修改
$config['TPL_SUFFIX']='.html';//模板后綴,一般不需要修改
$config['TPL_CACHE_SPACE']='tpl_cache';//模板緩存存放文件夾名,一般不需要修改
$config['TPL_CACHE_SUFFIX']='.php';//模板緩存后綴,一般不需要修改
?>  
啟用模板引擎
這里我還拿剛才的index_controller.php文件Hello World!代碼來(lái)演示。
//index_controller.php文件 只要修改成
<?php                   
class index_controller extends controller{//只要這里繼承下controller 類(lèi)既可加載模板引擎
     
    public function index(){
        echo 'Hello World!';
    }
     
}
?>  
模板賦值與輸出
使用方法:
//index_controller.php文件 只要修改成
<?php                   
class index_controller extends controller{//只要這里繼承下controller 類(lèi)既可加載模板引擎
     
    public function index(){
        $this->view['list'] = $list;//模板賦值    $list可以是字符串,數(shù)組等任何類(lèi)型
        $this->view('index');    //模板輸出
        /*   
        $this->view('index');加載app/應(yīng)用/template/default/index.html模板    .html后綴名可在配置里修改 默認(rèn)不用修改
        $this->view('index.html'); 也可以直接加上后綴,但是這樣的就不要再去修改配置文件里的TPL_SUFFIX 選項(xiàng)了
        $this->view('library/index.html');加載app/應(yīng)用/template/default/library/index.html模板    
        $this->view();//不加參數(shù),等價(jià)于$this->view(當(dāng)前控制器名/當(dāng)前操作方法.html);    
        */
        //echo 'Hello World!';
    }
     
}
?>  
模板標(biāo)簽
標(biāo)簽定義都位于framework/template.php文件 parse方法中。
使用方法:
1、系統(tǒng)常量
    {TPL_PATH}             //這個(gè)常量用于加載css、js、圖片 等資源   默認(rèn)值 /app/應(yīng)用/template/風(fēng)格包/
2、變量輸出    
    {$name}                //最后解析為<!--?php echo $name;?-->   
    {$user['name']}        //最后解析為<!--?php echo $user['name'];?-->                 
3、模板包含,常用于包含公共頭部,公共底部        
    {include 模板文件名}    //如{include top.html}      
4、if判斷 
   {if $name==1}
   {elseif $name==2}
   {else}
   {/if}
5、for 標(biāo)簽
    {for $i=0;$i<10;$i++}
    {/for}
6、foreach 標(biāo)簽
    {foreach $array as $value}
    {/foreach}
    或
    {foreach $array as $key=>$value}
    {/foreach}
7、date 時(shí)間函數(shù)
    date('Y-m-d H:i:s',time())
8、 URL 解析
     {:url('book/list')}     
     說(shuō)明:
     {:url($url = '', $vars = '', $app = '', $suffix = true, $domain = false)} 
     $url 控制器/操作方法     $vars 參數(shù)支持字符串、數(shù)組     $app 應(yīng)用名 默認(rèn)當(dāng)前應(yīng)用 
     $suffix 偽靜態(tài)后綴.html默認(rèn)加上  $domain 根域名是否添加

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)