CakePHP开发之调用控制器方法requestAction_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > CakePHP开发之调用控制器方法requestAction

CakePHP开发之调用控制器方法requestAction

 2010/9/19 23:34:11  lesorb  http://lesorb.javaeye.com  我要评论(0)
  • 摘要:有时候,为了调用上的方便,我们需要使用requestAction。它是CakePHP提供的,实现了无论当前请求在哪里,都能够任意调用的一个简便方法。这在某种程度上违背了MVC的设计理念,但是,为了追求灵活性,CakePHP在后续版本中一直保留了这个特性,并做出了一定的改进。经过查看,我得知,requestAction是对象类Object中的一个公有方法,是CakePHP中所有其他类的父类,这便能理解为什么它可以在任意位置被访问到了。但在使用中,我发现requestAction十分耗费资源
  • 标签:CakePHP开发 调用控制器方法requestAction

有时候,为了调用上的方便,我们需要使用requestAction。

它是CakePHP提供的,实现了无论当前请求在哪里,都能够任意调用的一个简便方法。这在某种程度上违背了MVC的设计理念,但是,为了追求灵活性,CakePHP在后续版本中一直保留了这个特性,并做出了一定的改进。

经过查看,我得知,requestAction是对象类Object中的一个公有方法,是CakePHP中所有其他类的父类,这便能理解为什么它可以在任意位置被访问到了。

但在使用中,我发现requestAction十分耗费资源,效率极差。

在requestAction中最终返回值为:

$dispatcher->dispatch($url, $params);


类Dispatcher是CakePHP中的主要的负责关联路由分发逻辑控制的类,它的一些参数的设定直接影响着最终的执行方式。

url:将要要请求的路径,Dispatcher从这里转发逻辑
return:是否返回视图
bare:布尔值,在layout之前判断布局器
layout:是否返回布局器


关于return的保守代码:

if (array_key_exists('return', $this->params) && $this->params['return'] == 1) {
			$controller->autoRender = false;
		}


如非需要,我不建议去使用requestAction。
发表评论
用户名: 匿名