我有点困惑。我阅读了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_Poll
,Mage_ProductAlert_Block_Price
,Mage_Rating_Block_Entity_Detailed
,Mage_Review_Block_Form
虽然两种方式都有效,但我想知道这样做的正确方法。
答案 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}}