EDIT: Ho riletto la tua domanda, e non sono sicuro di aver completamente coperto ciò che stai chiedendo. Tuttavia le informazioni si applicano un po 'quindi lo lascerò qui. Tuttavia, penso che la tua domanda riguardi le migliori pratiche per l'aggiunta di attributi alle entità esistenti. In particolare su questo punto, è perfettamente accettabile utilizzare le risorse di configurazione per aggiungere attributi a cose, EAV o altro. È possibile utilizzare funzioni come Mage_Eav_Model_Entity_Setup::addAttribute()
a tale scopo oppure utilizzare Mage_Core_Model_Resource_Setup::run()
per modificare tabelle con query SQL come richiesto.
risposta originale:
E 'possibile utilizzare più risorse all'interno dello stesso modulo, quindi questo dovrebbe essere sufficiente per fare quello che stai chiedendo.
È abbastanza semplice infatti, basta definire due risorse di installazione e Magento eseguirà entrambe.
nel 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>
quindi includere il necessario installare/aggiornare i file in app/code/local/MyCompany/MyModule/sql/mymodule_setup
e app/code/local/MyCompany/MyModule/sql/mymodule2_setup
È anche possibile aggiungere le proprie funzioni per il programma di installazione, estendendo il modello di impostazione. A tale scopo, con l'aggiunta di un tag classe:
<resources>
<mymodule2_setup>
<setup>
come questo:
<class>MyCompany_MyModule_Entity_Setup</class>
e creare un file a app/code/local/MyCompany/MyModule/Entity/Setup.php
che assomiglia a questo:
<?php
class MyCompany_MyModule_Entity_Setup extends Mage_Eav_Model_Entity_Setup
{
}
Così come sospettavi, avresti bisogno di estendere Mage_Core_Model_Resource_Setup o Mage_Eav_Model_Entity_Setup (EAV).
fonte
2012-04-11 23:53:07
Questo mi ha morso molte volte. Assicurati sempre di utilizzare il giusto modello di risorse per il tipo di entità che stai aggiungendo! –