Magento - Several Custom Models Needed for a Custom Module

When creating a custom module in Magento, you sometimes need to create custom attributes on the system. Generally, I would like to extend the corresponding module using my installation model or simply extend the Mage_Core_Model_Resource_Setup.

If my module requires adding attributes to specific models and requires certain installation models, that is, eav or sales, then this is best. I think in order to define my own installation model: MyCompany_MyModuel_Reseource_Setup (for 1.6+), and then in my sql installation file just create the necessary installation models. Is this the best approach here?

+5
source share
2 answers

( ) :

$otherSetup = Mage::getResourceModel('catalog/setup','default_setup');
$otherSetup->addAttribute(...);

, (. _prepareValues()).

, , , a-ok.

+3

EDIT: , , , . , . , , . , , EAV . , Mage_Eav_Model_Entity_Setup::addAttribute(), Mage_Core_Model_Resource_Setup::run() SQL- .

:

, , , .

, , 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).

+2

All Articles