很多时候我们使用框架的时候都需要使用模板引擎,由于刚刚学习CI框架不久,如果在试图页面调用控制器传过来的数据时,总需要使用`<?php echo?>`来显示数据。如果使用smarty引擎技术就可以用固定的标签来调取数据,是代码更加简洁,将前端页面和后端数据分离开来。
1.将smarty拷贝到application/libraries下,然后再根目录下下新建templates,templates_c,config,cache目录,结构如下:
(2)入口文件新增:define('ROOT', dirname(__FILE__));//在index.php入口文件任意位置加入这段代码
(3)libraries下新建CI_Smarty.php
- <?php
- defined('BASEPATH')ordie('Access restricted!');
- require(APPPATH .'libraries/smarty/Smarty.class.php');
- class CI_Smarty extendsSmarty{
- publicfunction __construct($template_dir ='', $compile_dir ='', $config_dir ='', $cache_dir =''){
- parent::__construct();
- if(is_array($template_dir)){
- foreach($template_dir as $key => $value){
- $this->$key = $value;
- }
- }else{
- //ROOT是Codeigniter在入口文件index.php定义的本web应用的根目录
- $this->template_dir = $template_dir ? $template_dir : ROOT .'/templates';
- $this->compile_dir = $compile_dir ? $compile_dir : ROOT .'/templates_c';
- $this->config_dir = $config_dir ? $config_dir : ROOT .'/config';
- $this->cache_dir = $cache_dir ? $cache_dir : ROOT .'/cache';
- }
- }
- }
新建test.tpl模板:在templates文件夹下新建tpl文件