Whats the best way to override a block class in magento2












0















1) Use preference in di.xml and add new methods or do changes



2) Or create a new class which extends the actual class and attach the new class to your phtml.



Lets suppose you want to extend MagentoCatalogBlockProductListproduct then you create a class like VendorModuleBlockProductListproduct and
change here



<block class="VendorModuleBlockProductListproduct" name="category.products.list" as="product_list" template="Magento_Catalog::product/list.phtml">









share|improve this question





























    0















    1) Use preference in di.xml and add new methods or do changes



    2) Or create a new class which extends the actual class and attach the new class to your phtml.



    Lets suppose you want to extend MagentoCatalogBlockProductListproduct then you create a class like VendorModuleBlockProductListproduct and
    change here



    <block class="VendorModuleBlockProductListproduct" name="category.products.list" as="product_list" template="Magento_Catalog::product/list.phtml">









    share|improve this question



























      0












      0








      0








      1) Use preference in di.xml and add new methods or do changes



      2) Or create a new class which extends the actual class and attach the new class to your phtml.



      Lets suppose you want to extend MagentoCatalogBlockProductListproduct then you create a class like VendorModuleBlockProductListproduct and
      change here



      <block class="VendorModuleBlockProductListproduct" name="category.products.list" as="product_list" template="Magento_Catalog::product/list.phtml">









      share|improve this question
















      1) Use preference in di.xml and add new methods or do changes



      2) Or create a new class which extends the actual class and attach the new class to your phtml.



      Lets suppose you want to extend MagentoCatalogBlockProductListproduct then you create a class like VendorModuleBlockProductListproduct and
      change here



      <block class="VendorModuleBlockProductListproduct" name="category.products.list" as="product_list" template="Magento_Catalog::product/list.phtml">






      magento2 overrides






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 6 hours ago









      WISAM HAKIM

      1,597618




      1,597618










      asked 6 hours ago









      Kingshuk DebKingshuk Deb

      784624




      784624






















          2 Answers
          2






          active

          oldest

          votes


















          0














          Rather than extend block use Plugin



          There is three type of plugin




          • Before plugin


          • After plugin


          • Around plugin



          For more info please refer link






          share|improve this answer































            0














            The best way to override a block would be a plugin, but note that a plugins can not be used on following:




            1. Final methods

            2. List item

            3. Non-public methods

            4. Class methods (such as static methods)

            5. __construct

            6. Virtual types

            7. Objects that are instantiated before MagentoFrameworkInterception is bootstrapped.


            Reference - https://devdocs.magento.com/guides/v2.3/extension-dev-guide/plugins.html






            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%2f261030%2fwhats-the-best-way-to-override-a-block-class-in-magento2%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              0














              Rather than extend block use Plugin



              There is three type of plugin




              • Before plugin


              • After plugin


              • Around plugin



              For more info please refer link






              share|improve this answer




























                0














                Rather than extend block use Plugin



                There is three type of plugin




                • Before plugin


                • After plugin


                • Around plugin



                For more info please refer link






                share|improve this answer


























                  0












                  0








                  0







                  Rather than extend block use Plugin



                  There is three type of plugin




                  • Before plugin


                  • After plugin


                  • Around plugin



                  For more info please refer link






                  share|improve this answer













                  Rather than extend block use Plugin



                  There is three type of plugin




                  • Before plugin


                  • After plugin


                  • Around plugin



                  For more info please refer link







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 6 hours ago









                  Prashant ValandaPrashant Valanda

                  9,71412353




                  9,71412353

























                      0














                      The best way to override a block would be a plugin, but note that a plugins can not be used on following:




                      1. Final methods

                      2. List item

                      3. Non-public methods

                      4. Class methods (such as static methods)

                      5. __construct

                      6. Virtual types

                      7. Objects that are instantiated before MagentoFrameworkInterception is bootstrapped.


                      Reference - https://devdocs.magento.com/guides/v2.3/extension-dev-guide/plugins.html






                      share|improve this answer




























                        0














                        The best way to override a block would be a plugin, but note that a plugins can not be used on following:




                        1. Final methods

                        2. List item

                        3. Non-public methods

                        4. Class methods (such as static methods)

                        5. __construct

                        6. Virtual types

                        7. Objects that are instantiated before MagentoFrameworkInterception is bootstrapped.


                        Reference - https://devdocs.magento.com/guides/v2.3/extension-dev-guide/plugins.html






                        share|improve this answer


























                          0












                          0








                          0







                          The best way to override a block would be a plugin, but note that a plugins can not be used on following:




                          1. Final methods

                          2. List item

                          3. Non-public methods

                          4. Class methods (such as static methods)

                          5. __construct

                          6. Virtual types

                          7. Objects that are instantiated before MagentoFrameworkInterception is bootstrapped.


                          Reference - https://devdocs.magento.com/guides/v2.3/extension-dev-guide/plugins.html






                          share|improve this answer













                          The best way to override a block would be a plugin, but note that a plugins can not be used on following:




                          1. Final methods

                          2. List item

                          3. Non-public methods

                          4. Class methods (such as static methods)

                          5. __construct

                          6. Virtual types

                          7. Objects that are instantiated before MagentoFrameworkInterception is bootstrapped.


                          Reference - https://devdocs.magento.com/guides/v2.3/extension-dev-guide/plugins.html







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered 6 hours ago









                          Vivek KumarVivek Kumar

                          2,4372629




                          2,4372629






























                              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.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function () {
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f261030%2fwhats-the-best-way-to-override-a-block-class-in-magento2%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

                              Polycentropodidae

                              Magento 2 Error message: Invalid state change requested

                              Paulmy