1

我想了解 Magento 块,因此我阅读了 Mage_Core_Block_Abstract 的 Magento 1.5 代码。

insert($block,,,$alias) 方法首先调用 setChild($alias,$block) 方法,该方法构建一个 _children 数组(value=$block, key=$alias),然后构建一个 _sortedChildren 数组(值 = $ 名称,键 = 数字)。

我无法理解的是 unsetChild($alias) 方法,在取消设置 _children[$alias] 项目后......试图通过 array_search($alias,_sortedChildren) 找到相应的 _sortedChildren 项目......好吧,_sortedChildren 的值是块名称,不是别名!

unsetChild 是否与别名不等于其名称的孩子一起使用?

4

1 回答 1

3

unsetChild创建用于将现有块从一个地方移动到另一个地方。您可以从默认位置取消设置块,并在其他位置插入具有相同名称的块(您不能使用remove方法执行此操作,因为它会完全删除块)。

于 2012-05-13T19:20:49.007 回答