Router中,为什么要这样做呢?
本帖最后由 gaoomei 于 2012-9-14 21:13 编辑/**
*Fetch the current method
*
* @access public
* @return string
*/
function fetch_method()
{
if ($this->method == $this->fetch_class())
{
return 'index';
}
return $this->method;
}
为什么要这样做呢?我一直不解。
比如,我有个LoginController, indexAction是登录表单,loginAction是处理登录请求。。。
这段代码直接就把login/login 转成了login/index 。。。。
我的版本是:2.1.2,框架本身要求:for PHP 5.1.6 or newer ,所以也就没必要兼容PHP4,那么完全可以用__construct 代替类同名方法了。。那,$this->method == $this->fetch_class()这句话就没必要了。..
构造函数和index方法的用处还是不太一样。 我也感觉这句话没必要,直接把 controller 类的同名方法替换成 index 了
楼主直接把它去掉后应该也可以跑的吧? ci的这点处理的不是很好,控制器类和动作名称都直接使用类名和方法名,很多时候会和自己的意愿冲突。
比如Login控制器里的一个login动作,
在ci里我们这样:
class Login extends CI_Controller { function login(){……}}
然而我们这样做:
class LoginController extends CI_Controller { function loginAction(){……}}
也就变得更加清晰。当然我们需要扩展CI的几个东西了。 太尉天上飞 发表于 2012-9-17 00:58 static/image/common/back.gif
ci的这点处理的不是很好,控制器类和动作名称都直接使用类名和方法名,很多时候会和自己的意愿冲突。
比如L ...
我觉得这样太麻烦了。
很多框架都是这样,非得加个 action,完全没有必要,我觉得很啰嗦,呵呵
页:
[1]