device/device
渡される文字列はクラスcreateBlock
エイリアスです。クラスエイリアスは、Magento開発者に、実際のクラス名を使用せずにクラスを参照する方法を提供します。この間接参照により、クラスをインスタンス化して使用するコードを変更することなく、あるクラスを別のクラスに置き換える(またはMagentoの用語で書き直す)ことができます。
モジュールのファイルでクラスのプレフィックスをconfig.xml
次のように定義することから始めます(注:このコードを、単に下部にドロップするのではなく、既存のタグに追加してくださいconfig.xml
)。
<config>
<global>
<blocks>
<device>
<class>Abc_Device_Block</class>
</devicer>
</blocks>
</global>
</config>
ブロックのクラス名を作成する場合、xmlの部分は、エイリアスの/の前にある部分であり、クラス名を生成するときにタグの内容に置き換えられます。次に、/は_に置き換えられ、クラスエイリアスの残りの部分がクラス名に追加されます。したがって、クラスエイリアスdevice/device
と上記のXMLを使用して、次のクラス名が作成されます。Abc_Device_Block_Device
これは、Magentoがで見つけることを期待していますAbc/Device/Block/Device.php
。include_pathで指定された順序でフォルダを検索します。通常は、app/code/local
次に、、最後に`libです。app/code/community
app/code/core
同じ基本ロジックがモデルクラスとヘルパークラスにも適用されます。
Alan Stormの不可欠なCommerceBug拡張機能には、クラス名とファイルの場所に関して、どのモデル/ブロック/ヘルパークラスエイリアスがマップされるかをテストするための優れたツールがあります。
このメソッドの他のパラメーターは、レイアウトXMLファイルからブロックを参照(および変更)するために使用できる名前、およびレイアウトXMLにある他の属性の配列です。