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 相关文章推荐
通过html表格发电子邮件
Oct 09 PHP
用PHP4访问Oracle815
Oct 09 PHP
PHP中动态HTML的输出技术
Oct 09 PHP
《PHP边学边教》(02.Apache+PHP环境配置――上篇)
Dec 13 PHP
ie6 动态缩略图不显示的原因
Jun 21 PHP
Admin generator, filters and I18n
Oct 06 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
Nov 25 PHP
PHP设计模式之适配器模式代码实例
May 11 PHP
10款PHP开源商城系统汇总介绍
Jul 23 PHP
php解析xml 的四种简单方法(附实例)
Jul 11 PHP
php mysql_list_dbs()函数用法示例
Mar 29 PHP
php实现查询功能(数据访问)
May 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
Cakephp 执行主要流程
2010/03/24 PHP
php数组函数序列之array_keys() - 获取数组键名
2011/10/30 PHP
TMDPHP 模板引擎使用教程
2012/03/13 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
2017/05/19 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
2017/10/19 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
javascript add event remove event
2008/04/07 Javascript
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
jQuery Select(单选) 模拟插件 V1.3.62 改进版
2010/07/17 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
JavaScript中判断整数的多种方法总结
2014/11/08 Javascript
javaScript中slice函数用法实例分析
2015/06/08 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
2015/11/30 Javascript
iscroll碰到Select无法选择下拉刷新的解决办法
2016/05/21 Javascript
node.js中module.exports与exports用法上的区别
2016/09/02 Javascript
jQuery插件HighCharts实现的2D对数饼图效果示例【附demo源码下载】
2017/03/09 Javascript
基于Vue2x的图片预览插件的示例代码
2018/05/14 Javascript
ES6中定义类和对象的方法示例
2019/07/31 Javascript
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
python分割和拼接字符串
2013/11/01 Python
Python中的异常处理简明介绍
2015/04/13 Python
Python利用heapq实现一个优先级队列的方法
2019/02/03 Python
Python 日志logging模块用法简单示例
2019/10/18 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
python实现ip地址的包含关系判断
2020/02/07 Python
在keras 中获取张量 tensor 的维度大小实例
2020/06/10 Python
anaconda3安装及jupyter环境配置全教程
2020/08/24 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
浅析canvas元素的html尺寸和css尺寸对元素视觉的影响
2019/07/22 HTML / CSS
毕业生在校学习的自我评价分享
2013/10/08 职场文书
党校培训思想汇报
2013/12/30 职场文书
导游个人求职信
2014/04/25 职场文书
组织鉴定材料
2014/06/02 职场文书
领导干部查摆“四风”问题自我剖析材料思想汇报
2014/10/05 职场文书