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文件的实现方法
Mar 19 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
Nov 27 PHP
php中取得文件的后缀名?
Feb 20 PHP
深入理解php的MySQL连接类
Jun 07 PHP
php生成excel列名超过26列大于Z时的解决方法
Dec 29 PHP
PHP常见数组函数用法小结
Mar 21 PHP
PHP+HTML+JavaScript+Css实现简单爬虫开发
Mar 28 PHP
PHP的PDO事务与自动提交
Jan 24 PHP
ThinkPHP中图片按比例切割的代码实例
Mar 08 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
Jan 26 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
Feb 06 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
精致的人儿就要挑杯子喝咖啡
2021/03/03 冲泡冲煮
PHP 根据IP地址控制访问的代码
2010/04/22 PHP
Apache 配置详解(最好的APACHE配置教程)
2010/07/04 PHP
PHP生成二维码的两个方法和实例
2014/07/01 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
记录Yii2框架开发微信公众号遇到的问题及解决方法
2018/07/20 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
2020/01/04 PHP
JavaScript 无符号右移运算符
2009/04/17 Javascript
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮
2013/10/11 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
一个实用的图片切换支持点击切换和自动轮播
2014/09/09 Javascript
JS获取下拉框显示值和判断单选按钮的方法
2015/07/09 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
javascript动态获取登录时间和在线时长
2016/02/25 Javascript
Mac下安装vue
2018/04/11 Javascript
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
Vue组件通信中非父子组件传值知识点总结
2019/12/05 Javascript
[01:46]TI4西雅图DOTA2前线报道 中国选手抱团调时差
2014/07/08 DOTA
[01:03:41]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第三场 2月2日
2021/03/11 DOTA
python网络编程实例简析
2014/09/26 Python
用Python进行TCP网络编程的教程
2015/04/29 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
THE OUTNET英国官网:国际设计师品牌折扣网站
2016/08/14 全球购物
广播电视新闻学专业应届生求职信
2013/10/08 职场文书
建筑工程专业学生的自我评价
2013/12/25 职场文书
对孩子的寄语
2014/04/09 职场文书
机电一体化专业毕业生自荐信
2014/06/19 职场文书
学术研讨会主持词
2015/07/04 职场文书
2016年八一建军节活动总结
2016/04/05 职场文书
golang 接口嵌套实现复用的操作
2021/04/29 Golang
Python selenium的这三种等待方式一定要会!
2021/06/10 Python
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python
JavaScript文档对象模型DOM
2021/11/20 Javascript