init加入return false 不执行action 不行。不一定是init比如说
inti 中又调用了个auth()方法 那么auth 还需要返回到init,再在init返回。比较复杂。
下面是我想的一个过程,能否可行:
不要通过xxAction的返回去判断当前controller的停止
而是在controller中有个方法如_halt(ture);通过这个去判断返回。
Yaf_Dispatcher对应的地方是(伪代码,没细看yafc代码,话说看也看不懂)
以前可能是这样的:
$action=将要执行的方法
$params=参数
$c = new controller();
call_user_func([$c,_init],$params);
call_user_func([$c,$action],$params);
修改成这样的:
$c = new controller();
$action=将要执行的方法
$params=参数
call_user_func([$c,halt],$bool,$action,$params);
然后在controller抽象类的中写死个方法
halt($bool,$action=null,$params=null){
if($bool){
return $bool;
}
call_user_func([$this,_init],$params);
return call_user_func([$this,$action],$params);
}