• 技术文章 >后端开发 >php教程

    浅析ThinkPHP的模板输出功能_php实例

    2016-06-07 17:17:48原创268
    ThinkPHP中的每一个xxxAction.class.php文件就代表着一个应用模块,这个Action中的每一个方法(function)代表着一个操作,操作可以分为有输出到模板的操作和只具执行不需要输出的操作。
    打开Myapp/Lib/Action/IndexAction.class.php文件,我们可以看到里面的基础代码:

    class IndexAction extends Action{
    public function index(){
    }
    }
    
    

    对此,需要指出一下几点:

    1.在ThinkPHP的开发中,要增加一个应用模块,就要在Action文件夹里建立一个类,类的文件命名格式是“模块名称+Action.class.php”。例如我们这里的应用模块是Index,所以定义文件名为IndexAction.class.php。
    2.应用模块类的定义要继承框架的Action类。要为这个应用模块添加一个操作,则定义一个以此操作为命名的function.例如上面的index操作。

    通常一个应用模块中,会有若干操作(function)需要有与用户交互的页面,这就需要用到模板输出,ThinkPHP本身已内置了一套具有ThinkPHP特色的,很强大易扩展但应用非常方便兼简单的模板引擎。
    在应有模块中,如果某个操作是需要页面显示的,只要对应在Myapp/Tpl/default/里建立一个文件夹,文件夹以应用模块的名称来命名,然后在这个文件夹下,建立一个以这个function名称来命名的html文件,就可以在这个方法中使用$this->display()方法来直接调用该模板。(当然也可以调用其它模块下的其它模板或显式指定模板文件位置和名称,由于是循序渐进式的学习,就让我们先忽略吧)了解这些理论后,我们先简单实操一下这些知识。
    (1)在Myapp/Tpl/default/下建立一个文件夹,根据应用模块的名称,我们将这个文件夹命名为Index
    (2)在Myapp/Tpl/default/Index/下建立一个html文件,根据操作名称,我们命名该文件为index.html
    (3)打开Myapp/Lib/Action/IndexAction.class.php文件,修改代码为

    <?php
    class IndexAction extends Action{
    public function index(){
    $value =  'hello,ThinkPHP';
    $this->assign('name',$value);
    $this->display();
    }
    }
    ?>
    

    (摘自手册:ThinkPHP模板指南,此后的知识要点均来自ThinkPHP官方手册,不再申明)
    在Action类里面使用 assign方法对模板变量赋值,无论何种变量类型都统一使用assign赋值。

    $this->assign('name',$value);

    // 下面的写法是等效的

    $this->name = $value ;
    

    // 模板变量赋值后就需要调用模板文件来输出相关的变量,模板调用通过display方法来实现

    $this->display();
    


    4 打开Myapp/Tpl/default/Index/index.html文件,代码为

    
    
    
    {$name}
    
    
    测试输出: {$name}

    此处注意:模板变量使用{$变量名称}这种标签进行输出。

    不同的模板变量类型,使用不同的标签,标签可以自行另外定义,暂且不理会。

    5 打开浏览器输入地址:,我们可以看到,定义的模板变量已经输出来了。

    附加补充知识:

    1 如果要同时输出多个模板变量,可以使用下面的方式:

    $array = array();
    $array['name']  =  'thinkphp';
    $array['email']  =  '123456@vip.qq.com';
    $array['phone']  =  '123456';
    $this->assign($array);
    

    这样,就可以在模板文件中同时输出name、email和phone三个变量。

    2 我们使用上面的变量定义,将整个数组定义为一个模板变量来输出

    $array = array();
    $array['name']  =  'thinkphp';
    $array['email']  =  '123456@vip.qq.com';
    $array['phone']  =  '123456';
    $this->assign('array',$array);
    $this->display();
    

    在html中,要输出$array['name']的值,代码是
    {$array.name} 或 {$array['name']}

    3 将这个数组循环输出

    (1) IndexAction.class.php中代码更改如下

    <?php
    class IndexAction extends Action{
    public function index(){
    $array = array();
    $array['name']  =  'thinkphp';
    $array['email']  =  '123456@vip.qq.com;
    $array['phone']  =  '123456';
    $value =  'hello,ThinkPHP';
    $this->assign('array',$array);
    $this->assign('name',$value);
    $this->display();
    }
    }
    ?>
    

    (2) 将Myapp/Tpl/default/Index/index.html代码更改如下:

    
    
    
    {$name}
    
    
    {$vo}

    注意:name='array'是指要循环的模板变量是array,id='vo'是指这个数据在模板输出时所使用的名称

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:ThinkPHP 模板输出
    上一篇:函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐_php实例 下一篇:ThinkPHP中的系统常量和预定义常量集合_php实例
    Web大前端开发直播班

    相关文章推荐

    • php中session与cookie的比较_PHP• WampServer下安装多个版本的PHP、mysql、apache图文教程_PHP• 深入解读php中关于抽象(abstract)类和抽象方法的问题分析_PHP• 浅析51个PHP处理字符串的函数_PHP• win7下memCache的安装过程(具体操作步骤)_PHP
    1/1

    PHP中文网