CodeIgniter框架实现的整合Smarty引擎DEMO示例


Posted in PHP onMarch 28, 2019

本文实例讲述了CodeIgniter框架实现的整合Smarty引擎。分享给大家供大家参考,具体如下:

Smarty的模板机制很强大,一般情况下CI框架无需整合其他模板标签,因为PHP本身就是一种标签,简单易用。Codeigniter整合Smarty教程(我用的都是最新版本)如下:

第一步:下载Codeigniter最新版本:CodeIgniter框架源码
第二步:下载Smarty最新版本:Smarty引擎源码
第三步:具体配置

我已将本人整合好的代码上传,有兴趣的可以下载阅读。Codeigniter框架整合Smarty引擎DEMO 。

1、准备

将smarty拷贝到application/libraries下,然后再根目录下下新建templates,templates_c,config,cache目录,结构如下:

CodeIgniter框架实现的整合Smarty引擎DEMO示例

2、修改入口文件

在入口文件index.php中新增:

define('ROOT', dirname(__FILE__));

3、新建CI_Smarty.php

在libraries文件下新建CI_Smarty.php,写如下代码:

<?php
/**
* =======================================
* Created by PK Technology.
* Author: ZhiHua_W
* Date: 2016/10/31 0031
* Time: 上午 9:16
* Project: CI整合
* Power: CI框架整合smarty
* =======================================
*/
defined('BASEPATH') OR exit('No direct script access allowed');
require(APPPATH . 'libraries/smarty/Smarty.class.php');
class CI_Smarty extends Smarty
{
    public function __construct($template_dir = '', $compile_dir = '', $config_dir = '', $cache_dir = '')
    {
      parent::__construct();
      if (is_array($template_dir)) {
        foreach ($template_dir as $key => $value) {
          $this->$key = $value;
        }
      } else {
        //ROOT是Codeigniter在入口文件index.php定义的本web应用的根目录
        $this->template_dir = $template_dir ? $template_dir : ROOT . '/templates';
        $this->compile_dir = $compile_dir ? $compile_dir : ROOT . '/templates_c';
        $this->config_dir = $config_dir ? $config_dir : ROOT . '/config';
        $this->cache_dir = $cache_dir ? $cache_dir : ROOT . '/cache';
      }
    }
}

4、在controller中使用

在控制器Welcome.php中写入使用方法,代码如下:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller
{
    /**
     * Welcome constructor.
     * 写入构造函数,引入CI_Smarty类文件
     */
    public function __construct()
    {
      parent::__construct();
      $this->load->library('CI_Smarty');
    }
    /**
     * smarty测试函数
     */
    public function test()
    {
      $this->ci_smarty->assign('test', 'smarty');
      $this->ci_smarty->display('test.tpl');
    }
}

5、创建模版试图

在templates文件夹下创建test.tpl文件,写入如下代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Codeigniter整合Smarty测试</title>
</head>
<body>
这是 {$test} 测试
</body>
</html>

6、访问

至此,我们整合完毕,访问:http://localhost/Codeigniter_Smarty/index.php/Welcome/test即可看到测试结果。

希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php self,$this,const,static,-&amp;gt;的使用
Oct 22 PHP
创建配置文件 用PHP写出自己的BLOG系统 2
Apr 12 PHP
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
Jul 31 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
Jun 19 PHP
php将csv文件导入到mysql数据库的方法
Dec 24 PHP
php文件上传类完整实例
May 14 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
Jan 16 PHP
php 获取xml接口数据的处理方法
May 31 PHP
PHP封装cURL工具类与应用示例
Jul 01 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
Jul 08 PHP
php模拟实现斗地主发牌
Apr 22 PHP
PHP中国际化的字符串排序和比较对象详解
Aug 23 PHP
PHP微商城开源代码实例
Mar 27 #PHP
PHP简单验证码功能机制实例详解
Mar 27 #PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
Mar 27 #PHP
PHP实现数据四舍五入的方法小结【4种方法】
Mar 27 #PHP
PHP判断是否微信访问的方法示例
Mar 27 #PHP
PHP中localeconv()函数的用法
Mar 26 #PHP
PHP实现的支付宝支付功能示例
Mar 26 #PHP
You might like
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
PHP 设置MySQL连接字符集的方法
2011/01/02 PHP
解析htaccess伪静态的规则
2013/06/18 PHP
几个实用的PHP内置函数使用指南
2014/11/27 PHP
百度地图API使用方法详解
2015/08/25 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
2019/01/10 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
tp5.1 实现setInc字段自动加1
2019/10/18 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
JavaScript实现页面实时显示当前时间的简单实例
2013/07/20 Javascript
对js关键字命名的疑问介绍
2014/04/25 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
2015/09/14 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
2016/06/17 Javascript
Ajax使用原生态JS验证用户名是否存在
2020/05/26 Javascript
浅谈js原生拖放
2016/11/21 Javascript
实例浅析js的this
2016/12/11 Javascript
js倒计时显示实例
2016/12/11 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
2017/11/03 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
2018/09/07 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
2019/05/16 Javascript
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
python ElementTree 基本读操作示例
2009/04/09 Python
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
MySQL适配器PyMySQL详解
2017/09/20 Python
在pycharm中设置显示行数的方法
2019/01/16 Python
详解Python绘图Turtle库
2019/10/12 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
澳大利亚墨尔本的在线时装店:LORETA
2018/09/14 全球购物
超市开业庆典策划方案
2014/05/14 职场文书
中华在我心中演讲稿
2014/09/13 职场文书
群众路线自查报告及整改措施
2014/11/04 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
保卫工作个人总结
2015/03/03 职场文书
工商局调档介绍信
2015/10/22 职场文书
《雪地里的小画家》教学反思
2016/02/16 职场文书
游戏《铁拳》动画化!2022年年内播出
2022/03/21 日漫