Jestem trochę zdezorientowany. Przeczytałem wspaniały artykuł Alana Storma na temat Magento Block Lifecycle Methods i o ile rozumiem, należy użyć metody protected _construct()
, aby zainicjować blok. W moim przypadku chcę ustawić odpowiedni szablon bloku. Zakładam więc, że należy używaćKonstrukcja bloku Magento - użyj _construct lub __construct?
protected function _construct()
{
parent::_construct();
$this->setTemplate('stenik/qaforum/forum.phtml');
}
Jednak kiedy patrzę na blokach niektórych modułów Magento rdzeniowych, wydają się użyć metody php __construct to zrobić. Na przykład Mage_Poll_Block_Poll
, Mage_ProductAlert_Block_Price
, Mage_Rating_Block_Entity_Detailed
, Mage_Review_Block_Form
Chociaż obie strony rzeczywiście działa, chciałbym wiedzieć, co jest właściwym sposobem, aby to zrobić.
+1 do właściwej rady, ale to ISN” t 100% akademicki - gdy nadpisujesz metodę '__construct', wprowadzasz możliwość nie wywoływania macierzystego' __construct' lub wywoływania rodzica '__construct' i usuwania argumentów konstruktora. Może to powodować niespójności w zachowaniu się bloków podczas korzystania z aktualizacji xml układu. –
Warto podkreślić, ponieważ moja odpowiedź zakłada, że programiści zawsze robią Do The Right Thing®. – benmarks