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中利用XML技术构造远程服务(下)
Oct 09 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
Aug 01 PHP
php中的Base62类(适用于数值转字符串)
Aug 12 PHP
PHP函数microtime()用法与说明
Dec 04 PHP
Drupal7连接多个数据库及常见问题解决
Mar 02 PHP
PHP实现显示照片exif信息的方法
Jul 11 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
Apr 15 PHP
PHP7之Mongodb API使用详解
Dec 26 PHP
PHP 多任务秒级定时器的实现方法
May 13 PHP
PHP使用XMLWriter读写xml文件操作详解
Jul 31 PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 PHP
Laravel实现通过blade模板引擎渲染视图
Oct 25 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 smarty 二级分类代码和模版循环例子
2011/06/16 PHP
php生成略缩图代码
2012/07/16 PHP
深入php 正则表达式的学习探讨
2013/06/06 PHP
PHP遍历文件夹与文件类及处理类用法实例
2014/09/23 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
Safari5中alert的无限循环BUG
2011/04/07 Javascript
JavaScript高级程序设计 读书笔记之八 Function类及闭包
2012/02/27 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
2017/11/27 Javascript
js正则取值的结果数组调试方法
2018/10/10 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
2019/06/17 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
python 显示数组全部元素的方法
2018/04/19 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
完美解决keras保存好的model不能成功加载问题
2020/06/11 Python
使用Python判断一个文件是否被占用的方法教程
2020/12/16 Python
如何用用Python将地址标记在地图上
2021/02/07 Python
美国排名第一的在线葡萄酒商店:Wine.com
2016/09/07 全球购物
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
Auguste The Label官网:澳大利亚一家精品女装时尚品牌
2020/06/14 全球购物
不用游标的SQL语句有哪些
2012/09/07 面试题
大学生的应聘自我评价
2013/12/13 职场文书
五年级学生评语大全
2014/12/26 职场文书
个人工作总结怎么写?
2019/04/09 职场文书
python字典的元素访问实例详解
2021/07/21 Python
5人制售《绝地求生》游戏外挂获利500多万元 被判刑
2022/03/31 其他游戏