編集:私はあなたの質問を読み直しました、そして私があなたが尋ねていることを完全にカバーしたかどうかはわかりません。それでも、情報は多少当てはまるので、ここに残しておきます。ただし、あなたの質問は、既存のエンティティに属性を追加するためのベストプラクティスに関するものだと思います。特にその点では、セットアップリソースを使用して、EAVなどの属性を追加することはまったく問題ありません。Mage_Eav_Model_Entity_Setup::addAttribute()
この目的のためにこのような関数を使用するかMage_Core_Model_Resource_Setup::run()
、必要に応じてSQLクエリを使用してテーブルを変更するために使用できます。
元の答え:
同じモジュール内で複数のリソースを使用することが可能であるため、これはあなたが求めていることを行うのに十分なはずです。
実際、これは非常に簡単です。2つのセットアップリソースを定義するだけで、Magentoは両方を実行します。
config.xmlで:
<config>
...
<global>
...
<resources>
<!-- Resource 1 -->
<mymodule_setup>
<setup>
<module>MyCompany_MyModule</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</mymodule_setup>
<mymodule_write>
<connection>
<use>core_write</use>
</connection>
</mymodule_write>
<mymodule_read>
<connection>
<use>core_read</use>
</connection>
</mymodule_read>
<!-- Resource 2 -->
<mymodule2_setup>
<setup>
<module>MyCompany_MyModule</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</mymodule2_setup>
<mymodule2_write>
<connection>
<use>core_write</use>
</connection>
</mymodule2_write>
<mymodule2_read>
<connection>
<use>core_read</use>
</connection>
</mymodule2_read>
</resources>
...
</global>
...
</config>
次に、必要なインストール/アップグレードファイルをapp/code/local/MyCompany/MyModule/sql/mymodule_setup
とに含めますapp/code/local/MyCompany/MyModule/sql/mymodule2_setup
セットアップモデルを拡張することで、インストーラーに独自の関数を追加することもできます。これを行うには、クラスタグを次の場所に追加します。
<resources>
<mymodule2_setup>
<setup>
このような:
<class>MyCompany_MyModule_Entity_Setup</class>
でファイルを作成しますapp/code/local/MyCompany/MyModule/Entity/Setup.php
これは次のようになります。
<?php
class MyCompany_MyModule_Entity_Setup extends Mage_Eav_Model_Entity_Setup
{
}
したがって、ご想像のとおり、Mage_Core_Model_Resource_SetupまたはMage_Eav_Model_Entity_Setup(eav)を拡張する必要があります。