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面向对象全攻略 (三)特殊的引用“$this”的使用
Sep 30 PHP
如何使用Strace调试工具
Jun 03 PHP
php小技巧之过滤ascii控制字符
May 14 PHP
Yii入门教程之Yii安装及hello world
Nov 25 PHP
ThinkPHP中Session用法详解
Nov 29 PHP
php简单日历函数
Oct 28 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
Dec 22 PHP
PHP API接口必备之输出json格式数据示例代码
Jun 27 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
Jul 03 PHP
PHP设计模式之状态模式定义与用法详解
Apr 02 PHP
PHP如何将图片文件上传到另外一台服务器上
Aug 26 PHP
php redis setnx分布式锁简单原理解析
Oct 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
dedecms模版制作使用方法
2007/04/03 PHP
php一些公用函数的集合
2008/03/27 PHP
Optimizer与Debugger兼容性问题的解决方法
2008/12/01 PHP
163的邮件用phpmailer发送(实例详解)
2013/06/24 PHP
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
php使用Jpgraph绘制柱形图的方法
2015/06/10 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
JQuery文字列表向上滚动的代码
2013/11/13 Javascript
jquery中push()的用法(数组添加元素)
2014/11/25 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
使用node.js搭建服务器
2017/05/20 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
微信小程序如何调用新闻接口实现列表循环
2019/07/02 Javascript
Javascript如何实现扩充基本类型
2020/08/26 Javascript
vuex Module将 store 分割成模块的操作
2020/12/07 Vue.js
在Python的Flask框架中使用日期和时间的教程
2015/04/21 Python
Flask数据库迁移简单介绍
2017/10/24 Python
python素数筛选法浅析
2018/03/19 Python
Django使用redis缓存服务器的实现代码示例
2019/04/28 Python
Python 内置函数globals()和locals()对比详解
2019/12/23 Python
python中@property的作用和getter setter的解释
2020/12/22 Python
python基于openpyxl生成excel文件
2020/12/23 Python
Python读取ini配置文件传参的简单示例
2021/01/05 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
吃透移动端 Html5 响应式布局
2019/12/16 HTML / CSS
布鲁明戴尔百货店:Bloomingdale’s
2016/12/21 全球购物
来自世界上最好大学的在线课程:edX
2018/10/16 全球购物
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
人事任命书格式
2014/06/05 职场文书
群众路线党员个人剖析材料
2014/10/08 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
大学学生会主席竞选稿
2015/11/19 职场文书
廉洁自律心得体会2016
2016/01/13 职场文书
2017春节晚会开幕词
2016/03/03 职场文书
前端使用svg图片改色实现示例
2022/07/23 HTML / CSS