ZF中不能__construct
时间:2009-08-26
来源:互联网
学习ZF框架时,同学们都有这样的疑问,为什么ZF中不能__construct,取而代之的是init这样一个特殊函数。这就要从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();
}
php技术分享
[ 本帖最后由 康云川 于 2009-8-26 21:02 编辑 ]
调用。因此当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();
}
php技术分享
[ 本帖最后由 康云川 于 2009-8-26 21:02 编辑 ]
作者: 康云川 发布时间: 2009-08-26
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28