必须说明的是,本教程里所有的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相关推荐

  1. yaf框架整合smarty

    yaf的版本为3.3.2 百度出来的教程可能因为版本原因,均会报错: Fatal error: Declaration of Smarty_Adapter::getScriptPath() must ...

  2. yii2 ajax分页,Yii框架分页技术实例分析

    本文实例讲述了Yii框架分页技术.分享给大家供大家参考,具体如下: 直接上代码: 1.首先写控制器层 先引用pagination类 use yii\data\Pagination; 写自己的方法: f ...

  3. php ci框架 模板引擎,详解CodeIgniter框架实现的整合Smarty引擎DEMO

    CodeIgniter框架实现的整合Smarty引擎DEMO示例 本文实例讲述了CodeIgniter框架实现的整合Smarty引擎.分享给大家供大家参考,具体如下: Smarty的模板机制很强大,一 ...

  4. PHP Yii框架中使用smarty模板

    第一种方法 按照YII系统的办法生成视图觉得有点麻烦,觉得用smarty更省事.尝试着把smarty模板加进来了. date_default_timezone_set("PRC") ...

  5. php+yii手册下载,yii框架(含yii2.0中文手册)

    yii是BSD License下发布的一个开源项目,这意味着您能免费使用它开发开源或私有的Web应用程序,作为一款高性能,基于组件的php框架,因为框架结构和设计精巧的缓存支持,能够完成开发如门户网站 ...

  6. CodeIgniter_2.2.0整合smarty模板引擎

    CodeIgniter_2.2.0整合smarty模板引擎 转载于:https://blog.51cto.com/murongwenxian/1605204

  7. php yii框架和laravel,yii2跟laravel的区别是什么?

    区别:1.代码的可读性上Yii略胜一筹:laravel有点设计过度,laravel的facade模式让阅读vendor下的源代码有点坑.2.laravel社区比较活跃,资源比较丰富:而Yii因为使用者 ...

  8. php smarty ci,CI整合Smarty,cismarty_PHP教程

    CI整合Smarty,cismarty 1.到相应的站点下载smarty模板: 2.将源代码中的libs目录复制到项目的libraries目录下,改名为smarty3.0 3.在项目目录的librar ...

  9. php事件和行为,Yii框架组件和事件行为管理详解

    Yii框架组件和事件行为管理详解 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  Yii框架组件和事件行为管理详解.txt ] (友情提示:右键点上行txt文档名- ...

最新文章

  1. 【PC工具】200412更新百度网盘下载工具——最终最简单百度网盘下载方法及注意事项...
  2. ArcGIS JS先添加动态图层,再添加切片图层后不显示
  3. 10.2.2 选择器
  4. jdk11 jdk12_JDK 12附带紧凑数字格式
  5. nodejs 安装 nrm
  6. html HTML 文本格式化
  7. 美国住宅保修公司新增支持加密货币支付,并决定将 BTC 列入资产负债表
  8. Safari 最新技术预览版来啦,为开发者带来了哪些新功能?
  9. Scrapy框架结合Spynner采集需进行js,ajax动态加载的网页并提取网页信息(以采集微信公众号文章列表为例)
  10. 手机支付需厘清六大关键问题
  11. 力扣LCP3机器人大冒险
  12. simulink他励直流电动机串电阻启动仿真
  13. 关于强化神兽(圣兽)DBC参数详解
  14. 创建一个Date类,具有三个整型成员变量year,month,day,具有三个成员方法setDate,isLeapYear,print
  15. Linux中的tail命令
  16. Android自定义SurfaceView简单实现烟花效果
  17. 01背包经典例题详解
  18. Autodesk所有产品的卸载、安装解决方案(3dsmax、cad等)
  19. 【VirtualBox】VBox 网络设置|五种网络的区别
  20. Reddit NFT爆火,全球最大社区论坛成为Web3大规模应用前哨站

热门文章

  1. 通达信智能买卖指标公式
  2. NekoHtml解析 html 文件
  3. 51单片机学习笔记——蜂鸣器
  4. 休闲零食加盟店项目该如何选择品牌?
  5. 关于ajax调用后台接口无效并且刷新页面的问题
  6. bcb dll返回字符_⑩的游戏修改小课堂4——HOOK、DLL注入与游戏乱码修正
  7. 2022华为杯数学建模研赛F题思路与分析(1)
  8. CSS字体:Webfont在线字体与外部字体及操作系统预装字体使用指南
  9. 对外汉语偏误语料库_【亲测】8大对外汉语必备语料库,每个都很有“性格”!!...
  10. 西门子SMART PLC的自由口发送测试(一)