CI3轻松整合Smarty3

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/rdsuncn1977/article/details/50906416

虽然现在不用模板的越来越多了,但Smarty用习惯了,还是不太舍得丢掉。
使用框架CI版本3.0.3及 Smarty版本3.1.29。下面描述整合过程。
1、下载smarty-3.1.29
2 、解压smarty-3.1.27的lib目录到CI项目中的application\third_party下面,别文件无视。将lib目录名改成Smarty。
注:放在那里并不重要,目录名能识别即可
3 、在libraries目录下面新建文件SmartyBase.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class SmartyBase {
  var $v;
  public function __construct()
  {
    include  APPPATH. "third_party/Smarty-3.1.29/Smarty.class.php";//'third_party/Smarty-3.1.29/'
    $view = new Smarty();
    // 设置 Smarty 参数
    $view->left_delimiter = '{';
    $view->right_delimiter = '}';
    $view->setTemplateDir(APPPATH . 'views/templates');//模板路径
    $view->setCompileDir(APPPATH . 'cache/templates_c');
    $view->setCacheDir(APPPATH . 'cache/scache');
//    $view->setConfigDir(APPPATH . 'views/config');
    $view->compile_check = true;
    $view->force_compile = true;
    $view->caching = false;
    $view->cache_lifetime = 86400;
    $this->v= $view;
  }
}

4,在Core目录下新建MY_Controller.php,为了更方便使用Smarty。

<?php if (!defined('BASEPATH')) exit('No direct access allowed.');


    class Controller extends CI_Controller {

        public function __construct() {

            parent::__construct();

            $this->load->library('SmartyBase');
        }
        public function assign($key,$val)
        {
            $this->smartybase->v->assign($key,$val);
        }

        public function display($html)
        {
            $this->smartybase->v->display($html);
        }
    }
?>

5.然后就可以在Controller继承Controller 轻松使用Smarty了
this>assign(XXX,YYY); this->display(“zzz.tpl”);

猜你喜欢

转载自blog.csdn.net/rdsuncn1977/article/details/50906416
今日推荐