CI 框架整合 Smarty 模版引擎

(本地开发环境下进行: CI 3.x + Smarty 3.x)
本地开发环境准备说明

此处不做过多的说明,你可以下载一个本地集成开发环境(如:XAMPP 或者 wampserver)安装使用;本文档是基于 MAC、 XAMPP 环境进行介绍。

一、搭建CI框架环境
1、下载 CI 3.x 版本

下载地址: https://codeigniter.org.cn/download

2、解压、拷贝、初始访问

解压文件,并将其中的文件夹 application、 system、 和文件 index.php 拷贝到你的web根目录下,然后就可以使用CI框架了。至于其他的文件夹和文件,根据你的心情选择是否要一起拷贝。


copy_floder_file.png

然后访问你的web进行测试:http://localhost/xxx/ ,如果得到如下画面,表示CI框架环境搭建成功。

ci_welcome.png

二、整合 Smarty 模版引擎

1、下载 Smarty 3.x 版本

下载地址: https://github.com/smarty-php/smarty/releases/tag/v3.1.30

2、解压
3、在 application/third_party/ 文件夹下创建文件夹 smarty-3.1.30 ,并将解压好的Smarty库中的libs文件夹复制到 smarty-3.1.30 文件夹中
4、在application/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['config_dir']       = APPPATH . 'views/config';
$config['use_sub_dirs']     = false; //子目录变量(是否在缓存文件夹中生成子目录)
$config['left_delimiter']   = '<{';
$config['right_delimiter']  = '}>';
5、在application/libraries下创建一个Ci_smarty.php(注意:文件名可以随意保存,但接下来的步骤会用到此文件,所以请区分大小写),代码如下:
<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

require_once(APPPATH .'third_party/smarty-3.1.30/libs/SmartyBC.class.php');
class Ci_smarty extends SmartyBC {
    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->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');
    }
}
6、在application/core下新建一个MY_Controller.php ,代码如下:
<?php
class MY_Controller extends CI_Controller {
    public function __construct() {
        parent::__construct();
        $this->load->library("Ci_smarty");
    }

    public function assign($key, $val) {
        $this->ci_smarty->assign($key, $val);
    }

    public function display($html) {
        $this->ci_smarty->display($html);
    }
}
7、测试 Smarty 的整合

在 application/controller/ 目录下创建一个控制器文件 Test.php, 代码示例如下:

<?php
/**
 * Created by PhpStorm.
 * User: joker
 * Date: 2017/11/12
 * Time: 15:15
 */

class Test extends MY_Controller
{
    public function __construct(){
        parent::__construct();
    }

    public function index(){
        $data = [];
        $data['describe'] = '测试CI框架整合Smarty模版引擎!!!';
        $this->assign('data', $data);

        $this->display(APPPATH . 'views/templates/test.tpl');
    }
}

在 application/views/templates/ 目录下创建一个控制器文件 test.tpl, 代码示例如下:

<!DOCTYPE html>
<html>
<head>
    <title>测试smarty整合</title>
</head>
<body>

<h1><{$data["describe"]}></h1>

</body>
</html>

在 application/config/routes.php 文件中添加控制器的访问路由,则可以进行访问测试;如果得到如下的界面,则整合成功:


ci_smarty_success.png

至此,CI框架整合Smarty模版引擎完毕。

【如若文档有错误,欢迎大家不吝赐教。本文档是集网上各位大神的资源进行整合的,具体资源来源已经忘记了,如果发现有侵权等行为,请联系我,我将对应处理,谢谢~~~】

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351

推荐阅读更多精彩内容