Rumah > Artikel > pembangunan bahagian belakang > vaphp整合smart模板有关问题
vaphp整合smart模板问题
<br />目前正在做一个小项目,选择Ci框架也是第一次使用,发现CI没有内置的模版引擎,传统的php、html混写有点不习惯咯被惯坏了,决定将smarty模版引擎整合到CI框架中。 <br />步骤如下: <br />下载:ci,smarty <br />配署ci 在这里就不多说了…… <br />1. 将下载好的smarty包的lib文件上传到ci中的libraries 文件中,将取名称修改为smarty,在libraries文件新建cismarty.php文件,内容如下: <br />if (!defined('BASEPATH')) exit("no direct script access allowd"); <br />//以下是加载smarty的类文件 <br />require_once(APPPATH.'libraries/smarty/Smarty.class.php'); <br />//定义cismarty类,继承smarty类 <br />class cismarty extends Smarty{ <br /> //定义一个受保护的变量, <br /> protected $ci; <br /> <br /> function __construct(){ <br /> parent::__construct(); <br /> //引用实例化CI,这里主要是将smarty的配置文件写到ci中,以方便程序管理 <br /> $this->ci = & get_instance(); <br /> //加载ci的新建的smarty配置文件 <br /> $this->ci->load->config('smarty'); <br /> $this->cache_lifetime = $this->ci->config->item('cache_lifetime'); <br /> $this->caching = $this->ci->config->item('caching'); <br /> $this->template_dir = $this->ci->config->item('template_dir'); <br /> $this->compile_dir = $this->ci->config->item('compile_dir'); <br /> $this->cache_dir = $this->ci->config->item('cache_dir'); <br /> $this->use_sub_dirs = $this->ci->config->item('use_sub_dirs'); <br /> $this->left_delimiter = $this->ci->config->item('left_delimiter'); <br /> $this->right_delimiter = $this->ci->config->item('right_delimiter'); <br /> <br />2. 在config下新建smarty.php配置文件 <br /><?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <br />$config['cache_lifetime'] = 30*24*3600; //更新周期 <br />$config['caching'] = false;//是否使用缓存,项目在调试期间,不建议启用缓存 <br />$config['template_dir'] = APPPATH.'views'; //设置模板目录 <br />$config['compile_dir'] = APPPATH.'views/template_c'; //设置编译目录 <br />$config['cache_dir'] = APPPATH.'views/cache';//缓存文件夹 <br />$config['use_sub_dirs'] = true; //子目录变量(是否在缓存文件夹中生成子目录) <br />$config['left_delimiter'] = '<{'; <br />$config['right_delimiter'] = '}>'; <br /> <br /> <br />3. 在CI里重载smarty的 assign 和 display方法 <br />在框架根目录下core/目录下新建控制器继承CI基类,MY_Controller <br /><?php if (!defined('BASEPATH')) exit('No direct access allowed.'); <br />class MY_Controller extends CI_Controller { <br /> public function __construct() { <br /> parent::__construct(); <br /> } <br /> <br /> public function assign($key,$val) { <br /> $this->cismarty->assign($key,$val); <br /> } <br /> <br /> public function display($html) { <br /> $this->cismarty->display($html); <br /> } <br />} <br /> <br />4. 修改Config文件下的autoload.php 自动加载类文件 <br />$autoload['libraries'] = array('cismarty'); <br />到此配置已完成. <br />