PHP成都培训中心官方网站
返回首页
当前位置: 主页 > 在线教学 >

zend framework探秘之一:为什么要用init代替__const

时间:2009-08-19 08:20来源:www.phpchengdu.com(原创) 作者:罗维 点击:
在教学过程中,学习ZF框架时,同学们都有这样的疑问,为什么ZF中不能__construct,取而代之的是init这样一个特殊函数。 www.phpchengdu.com 原创。这就要从PHP的类的机制说起。P
  

在教学过程中,学习ZF框架时,同学们都有这样的疑问,为什么ZF中不能__construct,取而代之的是init这样一个特殊函数。www.phpchengdu.com原创。这就要从PHP的类的机制说起。PHP中,当子类有自身的构造函数时,父类的构造函数是不会自动

调用。因此当ZF框架要完成带参实例化时,就无法将参数注入。因此不得以只能在ZF中取消__construct,而通过一个init来模拟__construct,以实现其注入功能。

以下是ZF的ACTIO,通过分析这段代码就很容易理解上述问题了。

    public function __construct(Zend_Controller_Request_Abstract $request, Zend_Controller_Response_Abstract $response, array $invokeArgs = array())
    {
        $this->setRequest($request)
             ->setResponse($response)
             ->_setInvokeArgs($invokeArgs);
        $this->_helper = new Zend_Controller_Action_HelperBroker($this);
        $this->init();
    }

顶一下
(18)
90%
踩一下
(2)
10%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
发布者资料
admin 查看详细资料 发送留言 加为好友 用户等级:高级会员 注册时间:2009-01-01 16:01 最后登录:2011-06-21 10:06
推荐内容