7

我有点困惑。我阅读了 Alan Storm 关于Magento 块生命周期方法的优秀文章,据我所知,应该使用该protected _construct()方法来初始化块。就我而言,我只想设置正确的块模板。所以我想我应该使用

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

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

尽管这两种方法实际上都有效,但我想知道正确的方法是什么。

4

1 回答 1

10

它最终是学术性的,但正确的方法是覆盖 Magento 构造函数,即_construct按照核心团队的要求Mage_Core_Block_Abstract

/**
 * 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
     */
}
于 2013-08-19T16:42:08.177 回答