yii2 smarty php,yii框架整合Smarty
必须说明的是,本教程里所有的YII框架开发网站项目是整合Smarty来开发的,Smarty作为最成熟使用最多的模板之一,相信大家都比较熟悉。如果还有的同学不是很熟悉,可以参考Smarty教程。不过就算不会也不要紧,我这里尽量详细说明让大家明白。
可以先了解smarty中的assign(),include,display()这几个函数的用法。另外,还需要知道if-else,foreach这两个标签。足矣!
我们先来看一下整个开发目录文件:
简单说明一下几个目录的作用(存放文件的内容):
1、framework: YII框架文件目录
2、static: 静态文件
3、protected: 开发程序文件目录
4、uploadfile: 上传的文件
配置Smarty支持
1、创建一个类,文件名为:CSmarty.php内容如下:
/**
* 扩展增加smarty模板
*
* @author Hema
* @link http://www.ttall.net/
* @copyright Copyright © 2012-2015 ttall.net
* @license http://www.ttall.net/license/
*/
require_once (Yii::getPathOfAlias('application.extensions.smarty') . DIRECTORY_SEPARATOR . 'Smarty.class.php');
define('SMARTY_VIEW_DIR', Yii::getPathOfAlias('application.views'));
class CSmarty extends Smarty {
const DIR_SEP = DIRECTORY_SEPARATOR;
function __construct() {
parent::__construct();
$this -> template_dir = SMARTY_VIEW_DIR;
$this -> compile_dir = SMARTY_VIEW_DIR . self::DIR_SEP . 'template_c';
$this -> caching = true;
$this -> cache_dir = SMARTY_VIEW_DIR . self::DIR_SEP . 'cache';
$this -> left_delimiter = '';
$this -> cache_lifetime = 0;
// -- 初始全局数据
$this -> assign('base_url', 'http://www.ttall.net');
$this -> assign('index_url', 'http://www.ttall.net/index.php');
}
function init() {
}
}
把上述类放到文件目录:protected/extensions/
2、配置protected/config/main.php
在该文件中加入如下代码:
/**
* 配置文件
*
* @author Hema
* @link http://www.ttall.net/
* @copyright Copyright © 2012-2015 ttall.net
* @license http://www.ttall.net/license/
*/
// uncomment the following to define a path alias
// Yii::setPathOfAlias('local','path/to/local-folder');
return array(
'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
'name'=>'易百IT教程网-www.yiibai.com',
// preloading 'log' component
'preload'=>array('log'),
// autoloading model and component classes
'import'=>array(
'application.models.*',
'application.components.*',
'application.extensions.*',
'application.extensions.smarty.sysplugins.*',
),
// application components
'components'=>array(
'user'=>array(
// enable cookie-based authentication
'allowAutoLogin'=>true,
),
'smarty'=>array(
'class'=>'application.extensions.CSmarty',
),
3、找到文件protected/components/Controller.php,加入两个方法:
/**
* Smarty assign()方法
*
*/
public function assign($key, $value) {
Yii::app() -> smarty -> assign($key, $value);
}
/**
* Smarty display()方法
*
*/
public function display($view) {
Yii::app() -> smarty -> display($view);
}
这样,我们就可以在每一个控制器里直接调用这两个Smarty方法了。
yii2 smarty php,yii框架整合Smarty相关推荐
- yaf框架整合smarty
yaf的版本为3.3.2 百度出来的教程可能因为版本原因,均会报错: Fatal error: Declaration of Smarty_Adapter::getScriptPath() must ...
- yii2 ajax分页,Yii框架分页技术实例分析
本文实例讲述了Yii框架分页技术.分享给大家供大家参考,具体如下: 直接上代码: 1.首先写控制器层 先引用pagination类 use yii\data\Pagination; 写自己的方法: f ...
- php ci框架 模板引擎,详解CodeIgniter框架实现的整合Smarty引擎DEMO
CodeIgniter框架实现的整合Smarty引擎DEMO示例 本文实例讲述了CodeIgniter框架实现的整合Smarty引擎.分享给大家供大家参考,具体如下: Smarty的模板机制很强大,一 ...
- PHP Yii框架中使用smarty模板
第一种方法 按照YII系统的办法生成视图觉得有点麻烦,觉得用smarty更省事.尝试着把smarty模板加进来了. date_default_timezone_set("PRC") ...
- php+yii手册下载,yii框架(含yii2.0中文手册)
yii是BSD License下发布的一个开源项目,这意味着您能免费使用它开发开源或私有的Web应用程序,作为一款高性能,基于组件的php框架,因为框架结构和设计精巧的缓存支持,能够完成开发如门户网站 ...
- CodeIgniter_2.2.0整合smarty模板引擎
CodeIgniter_2.2.0整合smarty模板引擎 转载于:https://blog.51cto.com/murongwenxian/1605204
- php yii框架和laravel,yii2跟laravel的区别是什么?
区别:1.代码的可读性上Yii略胜一筹:laravel有点设计过度,laravel的facade模式让阅读vendor下的源代码有点坑.2.laravel社区比较活跃,资源比较丰富:而Yii因为使用者 ...
- php smarty ci,CI整合Smarty,cismarty_PHP教程
CI整合Smarty,cismarty 1.到相应的站点下载smarty模板: 2.将源代码中的libs目录复制到项目的libraries目录下,改名为smarty3.0 3.在项目目录的librar ...
- php事件和行为,Yii框架组件和事件行为管理详解
Yii框架组件和事件行为管理详解 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: Yii框架组件和事件行为管理详解.txt ] (友情提示:右键点上行txt文档名- ...
最新文章
- 【PC工具】200412更新百度网盘下载工具——最终最简单百度网盘下载方法及注意事项...
- ArcGIS JS先添加动态图层,再添加切片图层后不显示
- 10.2.2 选择器
- jdk11 jdk12_JDK 12附带紧凑数字格式
- nodejs 安装 nrm
- html HTML 文本格式化
- 美国住宅保修公司新增支持加密货币支付,并决定将 BTC 列入资产负债表
- Safari 最新技术预览版来啦,为开发者带来了哪些新功能?
- Scrapy框架结合Spynner采集需进行js,ajax动态加载的网页并提取网页信息(以采集微信公众号文章列表为例)
- 手机支付需厘清六大关键问题
- 力扣LCP3机器人大冒险
- simulink他励直流电动机串电阻启动仿真
- 关于强化神兽(圣兽)DBC参数详解
- 创建一个Date类,具有三个整型成员变量year,month,day,具有三个成员方法setDate,isLeapYear,print
- Linux中的tail命令
- Android自定义SurfaceView简单实现烟花效果
- 01背包经典例题详解
- Autodesk所有产品的卸载、安装解决方案(3dsmax、cad等)
- 【VirtualBox】VBox 网络设置|五种网络的区别
- Reddit NFT爆火,全球最大社区论坛成为Web3大规模应用前哨站
热门文章
- 通达信智能买卖指标公式
- NekoHtml解析 html 文件
- 51单片机学习笔记——蜂鸣器
- 休闲零食加盟店项目该如何选择品牌?
- 关于ajax调用后台接口无效并且刷新页面的问题
- bcb dll返回字符_⑩的游戏修改小课堂4——HOOK、DLL注入与游戏乱码修正
- 2022华为杯数学建模研赛F题思路与分析(1)
- CSS字体:Webfont在线字体与外部字体及操作系统预装字体使用指南
- 对外汉语偏误语料库_【亲测】8大对外汉语必备语料库,每个都很有“性格”!!...
- 西门子SMART PLC的自由口发送测试(一)