Magento Block构造 - 使用_construct还是__construct?

时间:2013-08-19 16:34:46

标签: magento magento-1.7

我有点困惑。我阅读了Alan Storm关于Magento Block Lifecycle Methods的优秀文章,据我所知,应该使用protected _construct()方法来初始化块。在我的情况下,我只想设置正确的块模板。所以我假设我应该使用

protected function _construct()
{
    parent::_construct();
    $this->setTemplate('stenik/qaforum/forum.phtml');
}

但是,当我查看一些核心Magento模块的块时,他们似乎使用php __construct方法来完成它。例如Mage_Poll_Block_PollMage_ProductAlert_Block_PriceMage_Rating_Block_Entity_DetailedMage_Review_Block_Form

虽然两种方式都有效,但我想知道这样做的正确方法。

1 个答案:

答案 0 :(得分:9)

它最终是学术性的,但正确的做法就是覆盖Magento构造函数,即_construct核心团队要求的/** * Internal constructor, that is called from real constructor * * Please override this one instead of overriding real __construct constructor * */ protected function _construct() { /** * Please override this one instead of overriding real __construct constructor */ }

{{1}}