配置
1. 下载ci框架和smarty, 创建项目目录
# /var/www 为web根目录
$ cd ~/download
$ wget https://codeload.github.com/bcit-ci/CodeIgniter/zip/3.0.6
$ wget https://codeload.github.com/smarty-php/smarty/zip/v3.1.29
$ unzip CodeIgniter-3.0.6.zip
$ unzip smarty-3.1.29.zip
$ mv CodeIgniter-3.0.6 /var/www/ci_smarty
$ mv smarty-3.1.29/libs /var/www/ci_smarty/application/libraries/smarty3.1.29
2. 在 /var/www/ci_smarty/application/libraries
目录下创建 Ci_smarty.php
文件,代码如下:
ci = & get_instance();
$this->ci->load->config('smarty');//加载smarty的配置文件
$this->cache_lifetime =$this->ci->config->item('cache_lifetime');
$this->caching = $this->ci->config->item('caching');
$this->config_dir = $this->ci->config->item('config_dir');
$this->template_dir = $this->ci->config->item('template_dir');
$this->compile_dir = $this->ci->config->item('compile_dir');
$this->cache_dir = $this->ci->config->item('cache_dir');
$this->use_sub_dirs = $this->ci->config->item('use_sub_dirs');
$this->left_delimiter = $this->ci->config->item('left_delimiter');
$this->right_delimiter = $this->ci->config->item('right_delimiter');
}
}
3. 在 /var/www/ci_smarty/application/config
目录下创建 smarty.php
文件,代码如下:
4. 在 /var/www/ci_smarty/application/core
目录下创建 MY_Controller.php
文件,代码如下:
ci_smarty->assign($key,$val);
}
public function display($html)
{
$this->ci_smarty->display($html);
}
}
此时, 所有的配置工作已经完成, 接下来看如何使用:
使用方法
1. 加载smarty类
有两种方法, 如果随时会用到, 推荐使用自动加载办法:
1). 在 ci框架的配置目录 config
下的 autoload.php
中自动加载类增加 smarty
类, 相关部分代码如下:
$autoload['libraries'] = array('ci_smarty');
如果只想在用到的时候加载, 则在对应的控制器的初始化方法中加载, 或者在对应的控制器的对应的方法中加载:
2). 直接执行 ci 的加载类方法:
$this->load->library("Ci_smarty");
2. 使用smarty
1). 在ci默认控制器 Welcome.php
中, 修改 index
方法如下:
assign('data',$test);
$this->display('test.html');
}
}
2). 在 views
目录, 创建 test.html
文件, 代码如下:
smarty结合ci使用测试
{$data}
3). 浏览器访问: localhost/ci_smarty
, 输出:
ci 3.0.6 结合 smarty 3.1.2 配置成功
notes: 运行之后, 会在views
目录生成一个编译目录template_c
, 如果在配置文件中开启了cache缓存, 则会生成对应的cache目录, 具体的目录, 皆可在config/smarty.php
中配置
开启smarty分配数据时的 debug
1./php/phplib/ext/smarty/
2.打开默认smarty的debug. 修改当前smarty目录 Smarty.class.php; 修改 360行, public $debugging_ctrl = 'URL'; 此处默认为 "NONE";
3.需要将debug.tpl发送到 smarty目录
URL?SMARTY_DEBUG 可以打印数据
可以弹出窗口显示分配的数据,有array() 和 json 两种 格式
更改的部分托管于github, 地址为fizzday: https://github.com/fizzday/ci_smarty
参考地址: 吐蕃赞普的新浪博客
大功告成, 完美手工~~~