yaf加载静态文件为什么会执行错误yaf 调用其他控制器器

yaf自动加载文件
时间: 06:26:19
&&&& 阅读:149
&&&& 评论:
&&&& 收藏:0
标签:models下面的文件
例如:Article.php
类名必须是:ArticleModel
调用时:$article_models = new ArticleModel();
library下面的文件
例如:./Function/String.php
类名必须是:Function_String
如果是静态方法,调用时:Function_String::getRandom标签:原文地址:http://www.cnblogs.com/wangkongming/p/4770258.html
&&国之画&&&& &&&&chrome插件&&
版权所有 京ICP备号-2
迷上了代码!yaf加载静态文件为什么会执行错误控制器_百度知道
yaf加载静态文件为什么会执行错误控制器
yaf访问静态文件问什么会触发错误处理机制,怎么解决
我有更好的答案
还要什么费用
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Yaf默认是开启了自动渲染,所以建了action后,他就会自己找模板!在测试的时候,如果不想让他寻找模板可以在action中return false 或者在bootstrap.php中关闭渲染
Yaf_Dispatcher::getInstance()-&autoRender(false);
$dispatcher-&getInstance()-&disableView();
默认模板文件后缀为phtml,想修改就在application.ini中配置一下就OK
application.view.ext = "html"
自动渲染时模板文件路径:application下views下控制器目录名下的action.phtml
如果是模块的时候,路径为application下modules下views下控制器目录名下的action.phtml
其它参数 (控制器中使用)assign 相当于变量赋值
$this-&getView()-&assign('user','lvtao');
render 渲染结果
echo $this-&getView()-&render('User/index.phtml');
display 渲染并输出
$this-&getView()-&display('User/index.phtml');
setScriptPath 设置模板的基目录
$this-&getView()-&setScriptPath('/template/index.phtml');
getScriptPath 获取当前模板路径 直接输出,不需要参数__set 为视图引擎分配一个模板变量, 在视图模板中可以直接通过${$name}获取模板变量值
$this-&getView()-&name = "value";
__get 获取视图引擎的一个模板变量值
echo $this-&_view-&
get 获取视图引擎的一个模板变量值
echo $this-&_view-&get("name");
阅读(...) 评论()你的位置: >
> php yaf框架扩展实践一——配置篇
配置文件基本可以说是每个项目都会有,在配置文件中我们通常会配置数据库访问地址、redis连接、url地址等等。早年开发的时候经常碰到这样麻烦的问题:就是本地开发环境的配置和测试环境、生产环境的配置都不全一样,像数据库连接配置、url地址配置等,每次更新项目到测试环境、生产环境的时候都需要修改配置,真的是非常麻烦。
幸好yaf对于配置文件的解析提供了节(section)的支持,并且还支持节之间的继承功能,将节的设置和yaf运行环境(yaf.environ)结合起来就可以达到很好的配置效果,且看如何实现。
配置运行环境
在配置php支持yaf的时候,可以设置一个参数yaf.environ:把本地开发设置成develop、测试环境配置成test、生产环境配置成product,如:
extension=yaf.so
yaf.use_namespace=1
yaf.environ=develop
通过设置运行环境,在项目中可以通过ini_get(‘yaf.environ’)获取环境参数,进而取到相应节的配置。
yaf扩展配置
yaf配置文件一般都放在项目的conf文件夹下,这里也不例外。yaf application实例化的时候需要传递一个配置文件路径,假设我们的配置文件叫application.ini,先看下application.ini的结构:
; 通用配置
[product : common]
; 生产环境配置
[test : common]
; 测试环境配置
[develop : common]
; 开发环境配置
这里的配置除了节之外,节和节之间还有继承关系。例如[product : common]就表示product的配置会继承common的配置。先配置一个数据库连接看看。
; 通用配置
; 数据库配置
resources.database.params.driver = &pdo_mysql&
resources.database.params.hostname = &127.0.0.1&
resources.database.params.port = 3306
resources.database.params.database = &database&
resources.database.params.username = &username&
resources.database.params.password = &password&
resources.database.params.charset = &UTF8&
resources.database.params.driver_options.1002 = &SET NAMES utf8&
[product : common]
; 生产环境配置
[test : common]
; 测试环境配置
[develop : common]
; 开发环境配置
resources.database.params.hostname = &127.0.0.1&
resources.database.params.database = &database&
resources.database.params.username = &username&
resources.database.params.password = &password&
yaf在实例化应用的传递该配置文件路径和运行环境:
define(&APPLICATION_PATH&, realpath(dirname(__FILE__) . '/../'));
$app = new \Yaf\Application(APPLICATION_PATH . &/conf/application.ini&, ini_get('yaf.environ'));
这样当项目运行环境在develop下的时候,会优先读取[develop : common]内的配置,如果没有则会从[common]中获取。在项目中任何地方都可以通过
\Yaf\Application::app()-&getConfig();
获取application.ini中的配置。
事实上该例中可以不用传递ini_get(‘yaf.environ’)参数,在实例化的时候yaf会自行读取php.ini中的yaf.environ参数。但如果是其它的配置文件,则需要传递该参数。
额外的配置
随着项目越来越庞大,配置也会越来越复杂,如果都放在项目默认的配置文件application.ini中,可能配置会有好几百行,这样就不容易维护了。一般我们会考虑新建配置文件用来存储额外的配置。yaf中提供了\Yaf\Config\Ini类来处理这些额外的配置文件。
$config = new \Yaf\Config\Ini(APPLICATION_PATH . '/conf/url.ini', ini_get('yaf.environ'));
在实际读取的时候,最好能设置一个静态变量保存读取到的配置,避免重复申请系统open函数调用。如下:
static $config =
if ($config === null) {
$config = new \Yaf\Config\Ini(APPLICATION_PATH . '/conf/url.ini', ini_get('yaf.environ'));
详细可以参考yaf扩展示例Bootstrap中的getUrlIniConfig方法。
配置文件缓存
yaf官方有提到可以通过yaf.cache_config来缓存配置文件提高性能,但笔者在实际测试中发现差别不大,估计是由于配置文件还不够大的原因,因为拆分了配置?有兴趣的小伙伴可以自行研究测试下,欢迎分享。
通过这样的配置方式我们很好地解决了配置文件的管理问题,可以很方便将整个版本库的代码直接推送到测试环境和发布到生产环境。需要注意的是:如果生产环境的配置有较强的保密性,那就只能在发布的时候进行配置了。
转载请注明: &
与本文相关的文章}

我要回帖

更多关于 静态无功补偿控制器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信