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 相关文章推荐
windows下PHP APACHE MYSQ完整配置
Jan 02 PHP
php zend解密软件绿色版测试可用
Apr 14 PHP
php minixml详解
Jul 19 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
Apr 24 PHP
php模拟socket一次连接,多次发送数据的实现代码
Jul 26 PHP
解析htaccess伪静态的规则
Jun 18 PHP
php微信公众开发之获取周边酒店信息的方法
Dec 22 PHP
PHP curl伪造IP地址和header信息代码实例
Apr 27 PHP
为你总结一些php信息函数
Oct 21 PHP
PHP+ajax实现获取新闻数据简单示例
May 08 PHP
PHP实现 APP端微信支付功能
Jun 22 PHP
详解PHP PDO简单教程
May 28 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
php下实现折线图效果的代码
2007/04/28 PHP
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
php 计划任务 检测用户连接状态
2012/03/29 PHP
检查php文件中是否含有bom的函数
2012/05/31 PHP
laravel自定义分页效果
2017/07/23 PHP
php使用json-schema模块实现json校验示例
2019/09/28 PHP
Apply an AutoFormat to an Excel Spreadsheet
2007/06/12 Javascript
jquery实现加载等待效果示例
2013/09/25 Javascript
jQuery Migrate 1.1.0 Released 注意事项
2014/06/14 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
jQuery表单事件实例代码分享
2016/08/18 Javascript
深入理解JavaScript创建对象的多种方式以及优缺点
2017/06/01 Javascript
原生JS实现瀑布流插件
2018/02/06 Javascript
js中let和var定义变量的区别
2018/02/08 Javascript
如何在vue中使用ts的示例代码
2018/02/28 Javascript
自己动手封装一个React Native多级联动
2018/09/19 Javascript
在小程序Canvas中使用measureText的方法示例
2018/10/19 Javascript
详解webpack 最简打包结果分析
2019/02/20 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
详解jQuery中的prop()使用方法
2020/01/05 jQuery
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
js根据后缀判断文件文件类型的代码
2020/05/09 Javascript
python从入门到精通(DAY 1)
2015/12/20 Python
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
Python实现base64编码的图片保存到本地功能示例
2018/06/22 Python
Scrapy爬虫文件批量运行的实现
2020/09/30 Python
达拉斯牛仔官方商店:Dallas Cowboys Pro Shop
2018/02/10 全球购物
迟到检讨书400字
2014/01/13 职场文书
小学班主任评语大全
2014/04/23 职场文书
歌颂祖国演讲稿
2014/05/04 职场文书
工作总结与自我评价
2014/09/18 职场文书
高中家长意见怎么写
2015/06/03 职场文书
2016年少先队活动总结
2016/04/06 职场文书
Vue3.0 手写放大镜效果
2021/07/25 Vue.js
基于Redission的分布式锁实战
2022/08/14 Redis