CI 2.2 + smarty 3.1.18 完美整合配置成功

CI 2.2 + smarty 3.1.18 配置成功


一、准备文档下载  (CI 框架和smarty)


二、将Smarty-3.1.18 源码包里面的libs文件夹copy到ci的项目目录application下面的libraries文件夹下,并重命名为Smarty


三、application下面的libraries文件夹下,创建文件 Ci_smarty.php

 
<?php
if(!defined('BASEPATH')) exit('No direct script access allowed');
require(APPPATH.'libraries/Smarty/Smarty.class.php');
class Ci_smarty extends Smarty
{
    protected $ci;
    
    public function __construct()
    {
        parent::__construct();
        
        $this->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->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');
    }
}
 

四、在config文件下创建smarty.php

 
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
$config['cache_lifetime']     =     60;         //更新周期
$config['caching']            =     false;      //是否使用缓存,项目在调试期间,不建议启用缓存
$config['template_dir']       =     APPPATH.'views';      //设置模板目录
$config['compile_dir']        =     APPPATH.'views/template_c';      //设置编译目录
$config['cache_dir']          =     APPPATH.'views/cache';    //缓存文件夹
$config['use_sub_dirs']       =     true;      //子目录变量(是否在缓存文件夹中生成子目录)
$config['left_delimiter']     =     '<{';
$config['right_delimiter']    =     '}>';
 

顺便再CI项目目录下的 views 目录下创建目录:template_c,cache  (创建的时候注意权限)

五、application->config找到autoload.php,修改如下

$autoload['libraries'] = array('Ci_smarty');

六、在application->core下,新建MY_Controller.php,

 
<?php if (!defined('BASEPATH')) exit('No direct access allowed.');
class MY_Controller extends CI_Controller { 
    public function __construct() {
        parent::__construct();
    }
    
    public function assign($key,$val) {
        $this->ci_smarty->assign($key,$val);
    }
 
    public function display($html) {
        $this->ci_smarty->display($html);
    }
} 
 

到此已经配置成功
下面进行测试
在application->controllers目录下新建welcome.php

 
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends MY_Controller 
{
    public function index()
    {
        $test='配置成功';
        $this->assign('test',$test);
        $this->display('index.html');
    }
}
 

在application->views目录下新建index.html

 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>smarty配置测试</title>
</head>
<body>
    <{$test}>
</body>
</html>
 

转自:http://codeigniter.org.cn/forums/forum.php?mod=viewthread&tid=18162

原文地址:https://www.cnblogs.com/zhhtao/p/4303350.html