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

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

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

经过查看,我得知,[b]requestAction是对象类Object中的一个公有方法[/b],是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;
}


[b]如非需要,我不建议去使用requestAction。[/b]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值