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 相关文章推荐
火车采集器 免费版使出收费版本功能实现原理
Sep 17 PHP
php操作SVN版本服务器类代码
Nov 27 PHP
深入理解PHP之数组(遍历顺序)  Laruence原创
Jun 13 PHP
PHP 透明水印生成代码
Aug 27 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
Jun 26 PHP
PHP开发框架kohana中处理ajax请求的例子
Jul 14 PHP
详细解读PHP的Yii框架中登陆功能的实现
Aug 21 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
Nov 15 PHP
大家都应该掌握的PHP关联数组使用技巧
Dec 25 PHP
Twig模板引擎用法入门教程
Jan 20 PHP
PHP微信开发之查询城市天气
Jun 23 PHP
PHP判断json格式是否正确的实现代码
Sep 20 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
腾讯QQ微博API接口获取微博内容
2013/10/30 PHP
ThinkPHP标签制作教程
2014/07/10 PHP
PHP框架Laravel插件Pagination实现自定义分页
2020/04/22 PHP
微信支付的开发流程详解
2016/09/13 PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
2016/11/25 PHP
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
JS和Jquery获取和修改label的值的示例代码
2014/01/15 Javascript
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
JavaScript中的anchor()方法使用详解
2015/06/08 Javascript
jquery分割字符串的方法
2015/06/24 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
2016/03/07 Javascript
关于input全选反选恶心的异常情况
2016/07/24 Javascript
AngularJS动态绑定HTML的方法分析
2016/11/07 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
JavaScript数据结构之数组的表示方法示例
2017/04/12 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
详解利用Angular实现多团队模块化SPA开发框架
2017/11/27 Javascript
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
JS代码检查工具ESLint介绍与使用方法
2020/02/04 Javascript
基于js判断浏览器是否支持webGL
2020/04/18 Javascript
vue cli4.0项目引入typescript的方法
2020/07/17 Javascript
[42:25]EG vs Spirit Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
Python压缩和解压缩zip文件
2015/02/14 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
Python GUI自动化实现绕过验证码登录
2020/01/10 Python
python实现ftp文件传输系统(案例分析)
2020/03/20 Python
Python尾递归优化实现代码及原理详解
2020/10/09 Python
CSS3常用的几种颜色渐变模式总结
2016/11/18 HTML / CSS
英国皇家造币厂:The Royal Mint
2018/10/05 全球购物
怎样写离婚协议书
2014/09/10 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
乡镇防汛工作汇报
2014/10/28 职场文书
南湾猴岛导游词
2015/02/09 职场文书
大学生入党自我鉴定范文
2019/06/21 职场文书