php ci框架 模板引擎,详解CodeIgniter框架实现的整合Smarty引擎DEMO
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相关推荐
- Mysql存储引擎详解(MyISAM与InnoDB的区别)
Mysql存储引擎详解(MyISAM与InnoDB的区别) 存储引擎 MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平 ...
- Django框架的模板层详解
目录 一.模板简介 二.模板语法之变量 三.模板之过滤器 四.模板之标签 for标签 for ... empty if 标签 with 五.自定义标签和过滤器 六.模板导入和继承 模板导入: 模板继承 ...
- pythonmessage用法_django 消息框架 message使用详解
前言 在网页应用中,我们经常需要在处理完表单或其它类型的用户输入后,显示一个通知信息给用户. 对于这个需求,Django提供了基于Cookie或者会话的消息框架messages,无论是匿名用户还是认证 ...
- 详解工作流框架Activiti的服务架构和组件
摘要:通过这篇文章,可以对工作流有一个基本的认识,为后续工作流框架Activiti的学习打下坚实的基础. 本文分享自华为云社区<BPMN工作流的基本概念!详解工作流框架Activiti的服务架构 ...
- spring框架 AOP核心详解
AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子. 一 AOP的基本概念 (1)Asp ...
- 定时任务框架APScheduler学习详解
定时任务框架APScheduler学习详解 APScheduler简介 在平常的工作中几乎有一半的功能模块都需要定时任务来推动,例如项目中有一个定时统计程序,定时爬出网站的URL程序,定时检测钓鱼网站 ...
- java集合框架的结构_集合框架(Collections Framework)详解及代码示例
简介 集合和数组的区别: 数组存储基础数据类型,且每一个数组都只能存储一种数据类型的数据,空间不可变. 集合存储对象,一个集合中可以存储多种类型的对象.空间可变. 严格地说,集合是存储对象的引用,每个 ...
- python string模块template_Python - 定制pattern的string模板(template) 详解
定制pattern的string模板(template) 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/28625179 s ...
- Android系统(96)---Android 数据交换解析框架Gson使用详解
Android 数据交换解析框架Gson使用详解 Json 是一种文本形式的数据交换格式,比 xml 更为轻量.Json 的解析和生成的方式很多,在 Android 平台上最常用的类库有 Gson 和 ...
最新文章
- 2019年陕西高考分数线出炉
- MySQL优化必须调整的10项配置
- 个人遇到局域网不能访问解决分享
- ZOJ 2432 Greatest Common Increasing Subsequence(最长公共上升子序列+路径打印)
- php smtp发送附件,PHP:如何使用smtp设置发送带附件的电子邮件?
- python取前三位_Python 实现取多维数组第n维的前几位
- 云服务器 ECS(CentOS) 安装 Node
- 7-11 玩转二叉树 (25 分)
- 开源自动化部署工具_6种开源家庭自动化工具
- lynis check log
- 高频分类ISO1443, ISO15693, ISO18000-3
- 《解读基金》 基金中统计指标含义-平均回报、标准差、夏普比率、阿尔法系数、贝塔系数、R平方
- 与泽风格--爱的季节
- [数据结构] UVa1471 Defense Lines 防线
- 互联网医院 2020年突出成就_我省2020年互联网企业20强榜单出炉
- linux少了 dev dm设备,已解决: Linux中安装了powerpath之后为什么还会有dm设备? - Dell Community...
- Alfred数据室读者群,等你来!
- 录屏软件哪个好?比较好用的录屏软件,这4款值得一试!
- 牛皮了!遇到“ORA-12154: TNS: 无法解析指定的连接标识符”错误,到底该如何解决?
- 嵌入式实时Hypervisor:XtratuM (2)
热门文章
- Linux学习之Linux历史
- CompletableFuture详解~join与get的区别
- 惠普g260鼠标宏软件_黑爵电竞鼠标AJ337 电竞手残党福音 鼠标宏一键火力全开
- MySQL自动建立集合自动分片_1.mongodb初步使用总结
- FreeRTOS应用开发笔记之一:FreeRTOS在STM32的移植
- ios java 图片上传到服务器,iOS 图片上传服务器
- 搜索文献_如何有效地搜索及阅读文献
- pythonjieba分词_$好玩的分词——python jieba分词模块的基本用法
- idea无法导入主题jar包_总结IDEA开发的26个常用设置
- Linux的实际操作:搜索查找类的实用指令(find locate grep 管道符|)