模板引擎

2018-02-05 10:46 更新

模板引擎特意设计得很简单,循环,条件判断等都用贴近原生php去实现。为什么设计得如此简单呢?框架本身就是为了大家可以快速开发才诞生的,而现在的开源系统中,大部分都有一套自己的模板引擎,学习一个系统,又需要去重新学习一套模板标签,大大增加了学习成本,违背了框架诞生的初衷,故我把模板引擎设计得很简单,需求复杂一点的,大家可以也自行完善标签库。

模板配置
说明:在根目录里config.php文件中可配置,这里的config.php是全局配置文件,如果想单独对某个应用配置可以把这个文件移到对应应用的根目录里即可。

//配置代码如下:  
<?php                   
//APP模板配置
$config['TPL_NAME'] = 'default';//模板默认风格包名
$config['TPL_CACHE_TIME'] = 1 ;//模板缓存时间 单位 秒
?>  
//还有其他一些框架不建议修改的配置如下
<?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!代码来演示。
//index_controller.php文件 只要修改成
<?php                   
class index_controller extends controller{//只要这里继承下controller 类既可加载模板引擎
     
    public function index(){
        echo 'Hello World!';
    }
     
}
?>  
模板赋值与输出
使用方法:
//index_controller.php文件 只要修改成
<?php                   
class index_controller extends controller{//只要这里继承下controller 类既可加载模板引擎
     
    public function index(){
        $this->view['list'] = $list;//模板赋值    $list可以是字符串,数组等任何类型
        $this->view('index');    //模板输出
        /*   
        $this->view('index');加载app/应用/template/default/index.html模板    .html后缀名可在配置里修改 默认不用修改
        $this->view('index.html'); 也可以直接加上后缀,但是这样的就不要再去修改配置文件里的TPL_SUFFIX 选项了
        $this->view('library/index.html');加载app/应用/template/default/library/index.html模板    
        $this->view();//不加参数,等价于$this->view(当前控制器名/当前操作方法.html);    
        */
        //echo 'Hello World!';
    }
     
}
?>  
模板标签
标签定义都位于framework/template.php文件 parse方法中。
使用方法:
1、系统常量
    {TPL_PATH}             //这个常量用于加载css、js、图片 等资源   默认值 /app/应用/template/风格包/
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 标签
    {for $i=0;$i<10;$i++}
    {/for}
6、foreach 标签
    {foreach $array as $value}
    {/foreach}
    或
    {foreach $array as $key=>$value}
    {/foreach}
7、date 时间函数
    date('Y-m-d H:i:s',time())
8、 URL 解析
     {:url('book/list')}     
     说明:
     {:url($url = '', $vars = '', $app = '', $suffix = true, $domain = false)} 
     $url 控制器/操作方法     $vars 参数支持字符串、数组     $app 应用名 默认当前应用 
     $suffix 伪静态后缀.html默认加上  $domain 根域名是否添加

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号