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目录,结构如下:

b129fbe2b80aeaa76cce8c80e92b7a06.png

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的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

padodb time.inc.php,怎样实现PHP中ADODB事务处理

这次给大家带来怎样实现PHP中ADODB事务处理,实现PHP中ADODB事务处理的注意事项有哪些,下面就是实战案例,一起来看一下。一、代码adodb.inc.php可从官方网站http://adodb.sourceforge.net/ 下载。或者点击此处本站下载。conn.php:&…

oracle清空无效数据,如何清除编译后留下的无效对象

在使用utlrp.sql编译后,查看发现还有一些invalid的object;请教这些invalid如何清除?多谢!SYSprimary>select object_name,object_type,owner from dba_objects where status not in (VALID);OBJECT_NAME OB…

linux隐藏特定进程,linux 隐藏进程

2、源码如下rootubuntu:/var/srt/libprocesshider# cat processhider.c#define _GNU_SOURCE#include #include #include #include #include /** Every process with this name will be excluded*/static const char* process_to_filter "srt";/** Get a directory n…

双用户windows linux系统,Windows与Linux合二为一?终于能在windows上运行Linux了!

原标题:Windows与Linux合二为一?终于能在windows上运行Linux了!目前在PC端操作系统市场份额中,微软旗下的windows系统占据超过50%的比例。作为微软旗下发布的产品之一,windows系统深受用户喜爱。从经典的XP和win7&…

linux的用户及权限管理,用户及权限管理

一、Linux用户、组的概念1.用户管理员:root,0其他用户:1-65535系统用户:1-499,守护进程获取资源进行权限分配普通用户:500,交互式登陆2.组管理员组:root,0其他用户:1-65535系统用户组:1-499普通用户组:500note:关于uid,gid的范围可以参考/etc/login.def3.Linux安全上下文进程所…

linux内存使用策略swap,Linux Swap使用分析

Linux操作系统性能分析主要包含磁盘IO、CPU、内存以及网络流量,而这里主要针对系统内存的使用进程情况做个分析。一、如何查看系统内存使用情况1、根据常用命令查看系统内存使用概况free -gtotal used free shared buffers cachedMem: …

linux从源码编译软件,linux软件源码的编译安装

软件包的组成:1二进制文件/bin,/sbin /usr/bin ,/usr/sbin /usr/local/bin /usr/local/sbin2库文件 /lib, /usr/lib /usr/local/lib3配置文件 /etc,/usr/local/etc4帮助文件 /usr/share/man usr/share/doc5头文件:/usr/include usr/local/includeA . bi…

linux对当前使用的分区分割,实例解说Linux中fdisk分区使用方法

一、fdisk 的介绍fdisk - Partition table manipulator for Linux ,译成中文的意思是磁盘分区表操作工具;本人译的不太好,也没有看中文文档;其实就是分区工具fdsik 能划分磁盘成为若干个区,同时也能为每个分区指定分区…

csky linux 编译内核,TQ2440的EmbedSky_hello模块编译内核问题及解决

已在内核代码中添加EmbedSky_hello驱动为例,进行内核编译时候出现了一下几个问题:1、在 /opt/EmbedSky/linux 2.6.30.4/drivers/char目录下修改“Kconfig”文件,添加如下内容:config EmbedSky_HELLOtristate "TQ2440/SKY2440…

Linux设置swap分区为128g,swap分区或文件的数量与大小限制

在Linux系统下,这个虚拟内存就被叫做swap。Linux swap分区是有限制的。在安装操作系统的时候,安装向导会提示用户需要创建多少的SWaP空间。通常情况下,SWaP比较合适的大小为物理内存的1-2倍。1. 早期的linux对虚拟内存的限制linux2.2以前的内…

linux设备树例程,iTOP-iMX6-设备树内核-实时时钟RTC以及Linux-c测试例程

当 Linux 开发者谈论一个实时时钟,他们通常指的是某种能记录墙上时间,并且有备用电池,以至于在系统关机的时候仍然可以工作的器件。Linux 有两个系列广泛兼容的用户空间 RTC 设备节点:• /dev/rtc : PC 机及兼容机系统…

linux有哪些实时同步工具,rsync文件同步工具常见模式有哪些?linux系统

互联网时代发展迅速,Linux运维技术的需求更多推进不少。市场对于Linux运维人才的需求也在逐渐加大。Linux行业崛起,在云计算大环境下,市场上对高级运维人员的需求将越来越大。文件同步工具rsync是运维工作中会遇到的命令,那么rsyn…

linux下rman自动备份,linux 下rman 自动备份

一、新建备份目录并授权:[oracleTAIXIN-HR ~]$ mkdir -p /home/oracle/app/hr_back (备份目录)mkdir -p /home/oracle/app/hr_back/archbackmkdir -p /home/oracle/app/hr_back/rmanscripts[oracleTAIXIN-HR ~]$ chmod 755 /home/oracle/app/hr_back (授权)chown…

linux jdk bin下载,Linux下安装jdk-6u45-linux-x64.bin

最近在学习linux下java开发,在搭环境的过程中发现网上很多配置都是错误的,现在写出来,供参考:从Oracle上下载jdk-6u45-linux-x64.bin1.下载文件:jdk-6u45-linux-x64.bin,将文件做成光盘挂载[rootlocalhost ~]mount /dev/cdrom /mn…

查看linux上redis的运行状态,Redis教程(七)使用info查看服务状态

一、Redis info命令介绍Redis info命令是Redis自带的一个用于查看服务状态的命令,这个命令类似于top一样可以查看redis服务的整个状态,并且分为了5大类:二、Redisinfo命令语法redis-cli -a redis_pass info #查看所有模块信息redis-cli -a re…

linux应用参数 冒号,Lua-面向对象中函数使用时冒号(:)和点(.)的区别

Lua-面向对象中函数使用时冒号(:)和点(.)的区别,我们先来看一段简单的代码:local Animal {}functionAnimal:Eat( food )print("Animal:Eat", self, food)endfunctionAnimal.Sleep( time )print("Animal.Sleep", self, time)endAnima…

linux tcp cork,在此用例中,TCP_CORK和TCP_NODELAY是否有显着差异?

在写完关于TCP_NODELAY和TCP_CORK的答案之后,我意识到我必须缺少对TCP_CORK的要点的了解,因为我尚不清楚100%为何Linux开发人员认为有必要引入一个新的TCP_CORK标志,而不是仅仅依靠应用程序在适当的时间设置或清除现有的TCP_NODEL…

linux 优先级必须为整数,进程友好性(优先级)设置对Linux没有影响

您看到的行为几乎可以肯定是因为Linux 2.6.38(2010年)中添加了自动组功能.据推测,当您描述运行这两个命令时,它们在不同的终端窗口中运行.如果你在同一个终端窗口中运行它们,那么你应该看到nice值有效.这个答案的其余部分详细阐述了这个故事.内核提供了一种称为自动分组的功能,…

欧框语言框架标准C2,CEFR欧洲语言共同参考框架

http://www.v4.cc/News-3997660.htmlCEFR全称是Common European Framework of Reference for Languages,是由欧洲语言测试者协会(ALTE)于2001年首次发布的一套建议标准,用来评估语言学习者在所学语言的成就,同时也给予一个教育上的评估方针。…

车羊问题c语言编程,C语言-人狼羊菜问题-最容易看懂的解决方法及代码

题目描述:农夫需要把狼、羊、菜和自己运到河对岸去,只有农夫能够划船,而且船比较小,除农夫之外每次只能运一种东西,还有一个棘手问题,就是如果没有农夫看着,羊会偷吃菜,狼会吃羊。请…