1

Magentoブロックを理解したいので、Mage_Core_Block_AbstractのMagento1.5コードを読みました。

insert($ block ,,, $ alias)メソッドは、最初にsetChild($ alias、$ block)メソッドを呼び出します。このメソッドは、_children配列(value = $ block、key = $ alias)を構築し、その後、_sortedChildren配列( value = $ name、key = number)。

私が理解できないのは、unsetChild($ alias)メソッドが_children [$ alias]アイテムの設定を解除した後、array_search($ alias、_sortedChildren)を介して対応する_sortedChildrenアイテムを見つけようとすることです…まあ、_sortedChildrenの値はブロック名です。エイリアスではありません!

unsetChildは、エイリアスがその名前と等しくない子で機能しますか?

4

1 に答える 1

3

unsetChild既存のブロックをある場所から別の場所に移動するために作成されます。removeブロックをデフォルトの位置から設定解除し、同じ名前のブロックを別の場所に挿入できます (ブロックが完全に削除されるため、メソッドを使用してこれを行うことはできません)。

于 2012-05-13T19:20:49.007 に答える