块类内的Magento块实例化

时间:2013-01-27 02:51:25

标签: php magento layout block instantiation

我刚刚购买了Alan Storm的pdf书籍No Frills Magento布局,在第一章中,他讨论了将子块实例化绑定到给定的块创建,特别是在_beforeToHtml()方法中。

在Alan Storm的书中,他使用这行代码来实例化子块

$block_2 = new Mage_Core_Block_Text ();

我已经习惯了这样的事情

 Mage::getModel('modulename/class');

两个问题:

  1. 是否有更好的方法从块类中实例化块
  2. 使用一个与另一个
  3. 有什么好处

1 个答案:

答案 0 :(得分:3)

如果你继续阅读这本书,它最终会引导你找到你想要的答案。我从直接类实例化开始,以显示系统的工作原理。

如果你迫不及待,这是快速回答

  1. $block_2 = Mage::getSingleton('core/layout')->createBlock('core/text');

  2. 当您使用别名(core/text)实例化该类时,您允许您的块受到为您的类创建类重写的人的影响。