CodeIgniter框架实现的整合Smarty引擎DEMO示例

本文实例讲述了CodeIgniter框架实现的整合Smarty引擎。分享给大家供大家参考,具体如下:

Smarty的模板机制很强大,一般情况下CI框架无需整合其他模板标签,因为PHP本身就是一种标签,简单易用。Codeigniter整合Smarty教程(我用的都是最新版本)如下:

第一步:下载Codeigniter最新版本:CodeIgniter框架源码

第二步:下载Smarty最新版本:Smarty引擎源码

第三步:具体配置

我已将本人整合好的代码上传,有兴趣的可以下载阅读。Codeigniter框架整合Smarty引擎DEMO 。

1、准备

将smarty拷贝到application/libraries下,然后再根目录下下新建templates,templates_c,config,cache目录,结构如下:

2、修改入口文件

在入口文件index.php中新增:

define('ROOT', dirname(__FILE__));

3、新建CI_Smarty.php

在libraries文件下新建CI_Smarty.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中写入使用方法,代码如下:

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文件,写入如下代码:

Codeigniter整合Smarty测试

这是 {$test} 测试

6、访问

至此,我们整合完毕,访问:http://localhost/Codeigniter_Smarty/index.php/Welcome/test即可看到测试结果。

希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

php ci框架 模板引擎,详解CodeIgniter框架实现的整合Smarty引擎DEMO相关推荐

  1. Mysql存储引擎详解(MyISAM与InnoDB的区别)

    Mysql存储引擎详解(MyISAM与InnoDB的区别) 存储引擎     MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平 ...

  2. Django框架的模板层详解

    目录 一.模板简介 二.模板语法之变量 三.模板之过滤器 四.模板之标签 for标签 for ... empty if 标签 with 五.自定义标签和过滤器 六.模板导入和继承 模板导入: 模板继承 ...

  3. pythonmessage用法_django 消息框架 message使用详解

    前言 在网页应用中,我们经常需要在处理完表单或其它类型的用户输入后,显示一个通知信息给用户. 对于这个需求,Django提供了基于Cookie或者会话的消息框架messages,无论是匿名用户还是认证 ...

  4. 详解工作流框架Activiti的服务架构和组件

    摘要:通过这篇文章,可以对工作流有一个基本的认识,为后续工作流框架Activiti的学习打下坚实的基础. 本文分享自华为云社区<BPMN工作流的基本概念!详解工作流框架Activiti的服务架构 ...

  5. spring框架 AOP核心详解

    AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子. 一 AOP的基本概念 (1)Asp ...

  6. 定时任务框架APScheduler学习详解

    定时任务框架APScheduler学习详解 APScheduler简介 在平常的工作中几乎有一半的功能模块都需要定时任务来推动,例如项目中有一个定时统计程序,定时爬出网站的URL程序,定时检测钓鱼网站 ...

  7. java集合框架的结构_集合框架(Collections Framework)详解及代码示例

    简介 集合和数组的区别: 数组存储基础数据类型,且每一个数组都只能存储一种数据类型的数据,空间不可变. 集合存储对象,一个集合中可以存储多种类型的对象.空间可变. 严格地说,集合是存储对象的引用,每个 ...

  8. python string模块template_Python - 定制pattern的string模板(template) 详解

    定制pattern的string模板(template) 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/28625179 s ...

  9. Android系统(96)---Android 数据交换解析框架Gson使用详解

    Android 数据交换解析框架Gson使用详解 Json 是一种文本形式的数据交换格式,比 xml 更为轻量.Json 的解析和生成的方式很多,在 Android 平台上最常用的类库有 Gson 和 ...

最新文章

  1. 2019年陕西高考分数线出炉
  2. MySQL优化必须调整的10项配置
  3. 个人遇到局域网不能访问解决分享
  4. ZOJ 2432 Greatest Common Increasing Subsequence(最长公共上升子序列+路径打印)
  5. php smtp发送附件,PHP:如何使用smtp设置发送带附件的电子邮件?
  6. python取前三位_Python 实现取多维数组第n维的前几位
  7. 云服务器 ECS(CentOS) 安装 Node
  8. 7-11 玩转二叉树 (25 分)
  9. 开源自动化部署工具_6种开源家庭自动化工具
  10. lynis check log
  11. 高频分类ISO1443, ISO15693, ISO18000-3
  12. 《解读基金》 基金中统计指标含义-平均回报、标准差、夏普比率、阿尔法系数、贝塔系数、R平方
  13. 与泽风格--爱的季节
  14. [数据结构] UVa1471 Defense Lines 防线
  15. 互联网医院 2020年突出成就_我省2020年互联网企业20强榜单出炉
  16. linux少了 dev dm设备,已解决: Linux中安装了powerpath之后为什么还会有dm设备? - Dell Community...
  17. Alfred数据室读者群,等你来!
  18. 录屏软件哪个好?比较好用的录屏软件,这4款值得一试!
  19. 牛皮了!遇到“ORA-12154: TNS: 无法解析指定的连接标识符”错误,到底该如何解决?
  20. 嵌入式实时Hypervisor:XtratuM (2)

热门文章

  1. Linux学习之Linux历史
  2. CompletableFuture详解~join与get的区别
  3. 惠普g260鼠标宏软件_黑爵电竞鼠标AJ337 电竞手残党福音 鼠标宏一键火力全开
  4. MySQL自动建立集合自动分片_1.mongodb初步使用总结
  5. FreeRTOS应用开发笔记之一:FreeRTOS在STM32的移植
  6. ios java 图片上传到服务器,iOS 图片上传服务器
  7. 搜索文献_如何有效地搜索及阅读文献
  8. pythonjieba分词_$好玩的分词——python jieba分词模块的基本用法
  9. idea无法导入主题jar包_总结IDEA开发的26个常用设置
  10. Linux的实际操作:搜索查找类的实用指令(find locate grep 管道符|)