Yii_集成smarty.doc

上传人:hw****26 文档编号:3553538 上传时间:2019-06-04 格式:DOC 页数:3 大小:73KB
下载 相关 举报
Yii_集成smarty.doc_第1页
第1页 / 共3页
Yii_集成smarty.doc_第2页
第2页 / 共3页
Yii_集成smarty.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、Yii 集成 smarty 说明时间:2013-1-10 10:00作者:itcast 孙书华1. 【在 protected 目录下建立文件夹 vendor/smarty,把 smarty 的类包放入其中】2. 【在 extensions 目录下边建立文件 Csmarty.php】Csmarty.php 文件具体内容如下( 意思自己体会理解):template_dir =SMARTY_VIEW_DIR.self:DS.tpl;$this-compile_dir =SMARTY_VIEW_DIR.self:DS.tpl_c;$this-caching = true;$this-cache_dir

2、 =SMARTY_VIEW_DIR.self:DS.cache;$this-left_delimiter = ;$this-right_delimiter = ;$this-cache_lifetime = 3600;function init() 3. 【根据 CSmarty.php 代码内容建立相应的文件夹】4. 【主配置文件设置】打开 protected/config/main.php在 components 数组中加入smarty=array(class=application.extensions.CSmarty,),5. 【得到 smarty 实例】在控制器里边:Yii:app()

3、-smarty();实例:public function actionIndex()Yii:app()-smarty() - assign(name,张三);/a.tpl 所在目录 protected/views/smarty/tpl/a.tpl,具体代码$nameYii:app()-smarty() - display(a.tpl);此时系统会报错:原因:YII 注册了一个自动加载类 spl_autoload_register(array(YiiBase,autoload),SMARTY 也注册了一个自动加载类,spl_autoload_register(smartyAutoload) ,Y

4、II 注册在前,这样在遇到一个类名的时候,先执行的是 YII 的自定义自动加载类的函数,对应 SMARTY 里的每个类名而言,也是先调用 YII 的自动加载类的函 数,但是如果不符合 YII 自动加载的条件的话,就会执行 SMARTY 的自动加载类的函数,然而,SMARTY 的类名在自动加载类的时候,确符合了 YII 自 动加载类的逻辑语句,结果就是 YII 使用 Include 语句要包含的类肯定找不到。解决方法:当 SMARTY 的类自动加载的时候,跳出在 YII 定义的自动加载函数,这样就会执行 SMARTY 的加载函数。具体实现是,修改 YIIBase 类里面的 autoload 函数

5、,增加如下代码:public static function autoload($className)/只要类名包含 smarty 的,无论大小写,都返回,/这样就跳出了 YII 自动加载类而去执行 SMARTY 的自动加载类函数了if(preg_match(/smarty/i, $className) return;。再次测试:This is ok6. 【优化】在 action 中直接用 Yii:app()-smarty 就可以试用 smarty 了。如果每次在 action 中使用 Yii:app()-smarty 比较麻烦的话,可以在 components 下的 Controller 中可以加入protected $smarty = ;protected function init() $this-smarty = Yii:app()-smarty;然后在 action 中就直接可以用$this-smarty 使用 smarty 了。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。