Magento 1.9 Extend Model, Load It Before Parent












1














Class Test1/Module1/Model/A {

protectedfunction doSomething(){
//behaviour
//behaviour
//behaviour
}
}

Class Test2/Module2/Model/B extends Test1/Module1/Model/A {

protected function doSomething(){
//behaviour
//behaviour
//added behaviour
//behaviour
}
}


Now in Test2/Module2/Model/B/etc/config.xml -



<?xml version="1.0"?>
<config>
<modules>
<Test2_Module2>
<active>true</active>
<codePool>local</codePool>
<depends>
<Test1_Module1/>
</depends>
<Test2_Module2>
</modules>
</config>


Now when Test1/Module1/Model/A is called I want Test2/Module2/Model/B to extend its behaviour. Is this the correct way?










share|improve this question






















  • No, this is quite different what you think. You need to overwrite for your case.
    – Sohel Rana
    yesterday
















1














Class Test1/Module1/Model/A {

protectedfunction doSomething(){
//behaviour
//behaviour
//behaviour
}
}

Class Test2/Module2/Model/B extends Test1/Module1/Model/A {

protected function doSomething(){
//behaviour
//behaviour
//added behaviour
//behaviour
}
}


Now in Test2/Module2/Model/B/etc/config.xml -



<?xml version="1.0"?>
<config>
<modules>
<Test2_Module2>
<active>true</active>
<codePool>local</codePool>
<depends>
<Test1_Module1/>
</depends>
<Test2_Module2>
</modules>
</config>


Now when Test1/Module1/Model/A is called I want Test2/Module2/Model/B to extend its behaviour. Is this the correct way?










share|improve this question






















  • No, this is quite different what you think. You need to overwrite for your case.
    – Sohel Rana
    yesterday














1












1








1







Class Test1/Module1/Model/A {

protectedfunction doSomething(){
//behaviour
//behaviour
//behaviour
}
}

Class Test2/Module2/Model/B extends Test1/Module1/Model/A {

protected function doSomething(){
//behaviour
//behaviour
//added behaviour
//behaviour
}
}


Now in Test2/Module2/Model/B/etc/config.xml -



<?xml version="1.0"?>
<config>
<modules>
<Test2_Module2>
<active>true</active>
<codePool>local</codePool>
<depends>
<Test1_Module1/>
</depends>
<Test2_Module2>
</modules>
</config>


Now when Test1/Module1/Model/A is called I want Test2/Module2/Model/B to extend its behaviour. Is this the correct way?










share|improve this question













Class Test1/Module1/Model/A {

protectedfunction doSomething(){
//behaviour
//behaviour
//behaviour
}
}

Class Test2/Module2/Model/B extends Test1/Module1/Model/A {

protected function doSomething(){
//behaviour
//behaviour
//added behaviour
//behaviour
}
}


Now in Test2/Module2/Model/B/etc/config.xml -



<?xml version="1.0"?>
<config>
<modules>
<Test2_Module2>
<active>true</active>
<codePool>local</codePool>
<depends>
<Test1_Module1/>
</depends>
<Test2_Module2>
</modules>
</config>


Now when Test1/Module1/Model/A is called I want Test2/Module2/Model/B to extend its behaviour. Is this the correct way?







magento-1.9 extend dependency






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked yesterday









Lukas G

698




698












  • No, this is quite different what you think. You need to overwrite for your case.
    – Sohel Rana
    yesterday


















  • No, this is quite different what you think. You need to overwrite for your case.
    – Sohel Rana
    yesterday
















No, this is quite different what you think. You need to overwrite for your case.
– Sohel Rana
yesterday




No, this is quite different what you think. You need to overwrite for your case.
– Sohel Rana
yesterday










1 Answer
1






active

oldest

votes


















2














From what I understand, you want to rewrite a model so that Magento uses yours, instead of the original. If that's the case, there are some more steps involved.



Here's an example of a basic module that rewrites a model:



app/code/local/Namespace/Module/Model/Layer.php



<?php
class Namespace_Module_Model_Layer extends Mage_Catalog_Model_Layer
{
public function getProductCollection($filtered = true)
{
//overwrite function from parent class
}
}


app/code/local/Namespace/Module/etc/config.xml



<?xml version="1.0"?>

<config>
<modules>
<Namespace_Module>
<version>1.0.0</version>
</Namespace_Module>
</modules>

<global>
<models>
<catalog>
<rewrite>
<layer>Namespace_Module_Model_Layer</layer>
</rewrite>
</catalog>
</models>
</global>
</config>


app/etc/modules/Namespace_Module.xml



<?xml version="1.0"?>

<config>
<modules>
<Namespace_Module>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Catalog />
</depends>
</Namespace_Module>
</modules>
</config>


Note: you will have to change some of the values, class names etc to match your purposes.






share|improve this answer





















    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "479"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f256810%2fmagento-1-9-extend-model-load-it-before-parent%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    2














    From what I understand, you want to rewrite a model so that Magento uses yours, instead of the original. If that's the case, there are some more steps involved.



    Here's an example of a basic module that rewrites a model:



    app/code/local/Namespace/Module/Model/Layer.php



    <?php
    class Namespace_Module_Model_Layer extends Mage_Catalog_Model_Layer
    {
    public function getProductCollection($filtered = true)
    {
    //overwrite function from parent class
    }
    }


    app/code/local/Namespace/Module/etc/config.xml



    <?xml version="1.0"?>

    <config>
    <modules>
    <Namespace_Module>
    <version>1.0.0</version>
    </Namespace_Module>
    </modules>

    <global>
    <models>
    <catalog>
    <rewrite>
    <layer>Namespace_Module_Model_Layer</layer>
    </rewrite>
    </catalog>
    </models>
    </global>
    </config>


    app/etc/modules/Namespace_Module.xml



    <?xml version="1.0"?>

    <config>
    <modules>
    <Namespace_Module>
    <active>true</active>
    <codePool>local</codePool>
    <depends>
    <Mage_Catalog />
    </depends>
    </Namespace_Module>
    </modules>
    </config>


    Note: you will have to change some of the values, class names etc to match your purposes.






    share|improve this answer


























      2














      From what I understand, you want to rewrite a model so that Magento uses yours, instead of the original. If that's the case, there are some more steps involved.



      Here's an example of a basic module that rewrites a model:



      app/code/local/Namespace/Module/Model/Layer.php



      <?php
      class Namespace_Module_Model_Layer extends Mage_Catalog_Model_Layer
      {
      public function getProductCollection($filtered = true)
      {
      //overwrite function from parent class
      }
      }


      app/code/local/Namespace/Module/etc/config.xml



      <?xml version="1.0"?>

      <config>
      <modules>
      <Namespace_Module>
      <version>1.0.0</version>
      </Namespace_Module>
      </modules>

      <global>
      <models>
      <catalog>
      <rewrite>
      <layer>Namespace_Module_Model_Layer</layer>
      </rewrite>
      </catalog>
      </models>
      </global>
      </config>


      app/etc/modules/Namespace_Module.xml



      <?xml version="1.0"?>

      <config>
      <modules>
      <Namespace_Module>
      <active>true</active>
      <codePool>local</codePool>
      <depends>
      <Mage_Catalog />
      </depends>
      </Namespace_Module>
      </modules>
      </config>


      Note: you will have to change some of the values, class names etc to match your purposes.






      share|improve this answer
























        2












        2








        2






        From what I understand, you want to rewrite a model so that Magento uses yours, instead of the original. If that's the case, there are some more steps involved.



        Here's an example of a basic module that rewrites a model:



        app/code/local/Namespace/Module/Model/Layer.php



        <?php
        class Namespace_Module_Model_Layer extends Mage_Catalog_Model_Layer
        {
        public function getProductCollection($filtered = true)
        {
        //overwrite function from parent class
        }
        }


        app/code/local/Namespace/Module/etc/config.xml



        <?xml version="1.0"?>

        <config>
        <modules>
        <Namespace_Module>
        <version>1.0.0</version>
        </Namespace_Module>
        </modules>

        <global>
        <models>
        <catalog>
        <rewrite>
        <layer>Namespace_Module_Model_Layer</layer>
        </rewrite>
        </catalog>
        </models>
        </global>
        </config>


        app/etc/modules/Namespace_Module.xml



        <?xml version="1.0"?>

        <config>
        <modules>
        <Namespace_Module>
        <active>true</active>
        <codePool>local</codePool>
        <depends>
        <Mage_Catalog />
        </depends>
        </Namespace_Module>
        </modules>
        </config>


        Note: you will have to change some of the values, class names etc to match your purposes.






        share|improve this answer












        From what I understand, you want to rewrite a model so that Magento uses yours, instead of the original. If that's the case, there are some more steps involved.



        Here's an example of a basic module that rewrites a model:



        app/code/local/Namespace/Module/Model/Layer.php



        <?php
        class Namespace_Module_Model_Layer extends Mage_Catalog_Model_Layer
        {
        public function getProductCollection($filtered = true)
        {
        //overwrite function from parent class
        }
        }


        app/code/local/Namespace/Module/etc/config.xml



        <?xml version="1.0"?>

        <config>
        <modules>
        <Namespace_Module>
        <version>1.0.0</version>
        </Namespace_Module>
        </modules>

        <global>
        <models>
        <catalog>
        <rewrite>
        <layer>Namespace_Module_Model_Layer</layer>
        </rewrite>
        </catalog>
        </models>
        </global>
        </config>


        app/etc/modules/Namespace_Module.xml



        <?xml version="1.0"?>

        <config>
        <modules>
        <Namespace_Module>
        <active>true</active>
        <codePool>local</codePool>
        <depends>
        <Mage_Catalog />
        </depends>
        </Namespace_Module>
        </modules>
        </config>


        Note: you will have to change some of the values, class names etc to match your purposes.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered yesterday









        Andrew Noble

        603213




        603213






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Magento Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f256810%2fmagento-1-9-extend-model-load-it-before-parent%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            1300-talet

            1300-talet

            Display a custom attribute below product name in the front-end Magento 1.9.3.8