Why preference is not working in Magento 2? The Next CEO of Stack OverflowMagento 2: controller preference not working after setup:di:compilemain.CRITICAL: Plugin class doesn't existPreference is not working in Magento 2Magento 2 preference not working for MagentoCheckoutBlockOnepageMagento 2: How to override newsletter Subscriber modelMagento 2: preference not working in admin panelWhy is there a DI preference for ProductInterface?Magento 2 Fatal Error on Setup pageMagento 2 connection after movingMagento 2.2.6 installation error in Docker

What was the first Unix version to run on a microcomputer?

Do I need to enable Dev Hub in my PROD Org?

Does it take more energy to get to Venus or to Mars?

Why has the US not been more assertive in confronting Russia in recent years?

Help understanding this unsettling image of Titan, Epimetheus, and Saturn's rings?

To not tell, not take, and not want

Complex fractions

How to prevent changing the value of variable?

What does "Its cash flow is deeply negative" mean?

sp_blitzCache results Memory grants

Is it possible to search for a directory/file combination?

Would this house-rule that treats advantage as a +1 to the roll instead (and disadvantage as -1) and allows them to stack be balanced?

How does the Z80 determine which peripheral sent an interrupt?

What happened in Rome, when the western empire "fell"?

Preparing Indesign booklet with .psd graphics for print

In the bitcoin scripting language, how can I access other outputs of the transaction? Or how else can I limit how the coins may be spent?

"In the right combination" vs "with the right combination"?

What benefits would be gained by using human laborers instead of drones in deep sea mining?

Is it professional to write unrelated content in an almost-empty email?

How does the mv command work with external drives?

Rotate a column

Would a galaxy be visible from outside, but nearby?

How do we know the LHC results are robust?

Can I run my washing machine drain line into a condensate pump so it drains better?



Why preference is not working in Magento 2?



The Next CEO of Stack OverflowMagento 2: controller preference not working after setup:di:compilemain.CRITICAL: Plugin class doesn't existPreference is not working in Magento 2Magento 2 preference not working for MagentoCheckoutBlockOnepageMagento 2: How to override newsletter Subscriber modelMagento 2: preference not working in admin panelWhy is there a DI preference for ProductInterface?Magento 2 Fatal Error on Setup pageMagento 2 connection after movingMagento 2.2.6 installation error in Docker










0















I am trying to implement error report in magento 2 so for that purpose i would like to mail all the errors in email. So I started with prefernece.



di.xml



<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
<preference for="MagentoFrameworkAppErrorHandler" type="PulsestormHelloWorldMVVMModelErrorHandler"/>
</config>


ErrorHandler.php



<?php 
namespace PulsestormHelloWorldMVVMModel;


/**
* An error handler that converts runtime errors into exceptions
*/
class ErrorHandler extends MagentoFrameworkAppErrorHandler

protected $errorPhrases = [
E_ERROR => 'Error',
E_WARNING => 'Warning',
E_PARSE => 'Parse Error',
E_NOTICE => 'Notice',
E_CORE_ERROR => 'Core Error',
E_CORE_WARNING => 'Core Warning',
E_COMPILE_ERROR => 'Compile Error',
E_COMPILE_WARNING => 'Compile Warning',
E_USER_ERROR => 'User Error',
E_USER_WARNING => 'User Warning',
E_USER_NOTICE => 'User Notice',
E_STRICT => 'Strict Notice',
E_RECOVERABLE_ERROR => 'Recoverable Error',
E_DEPRECATED => 'Deprecated Functionality',
E_USER_DEPRECATED => 'User Deprecated Functionality',
];

public function handler($errorNo, $errorStr, $errorFile, $errorLine)
echo"hii"; exit;
if (strpos($errorStr, 'DateTimeZone::__construct') !== false)
// there's no way to distinguish between caught system exceptions and warnings
return false;


$errorNo = $errorNo & error_reporting();
if ($errorNo == 0)
return false;


$msg = isset($this->errorPhrases[$errorNo]) ? $this->errorPhrases[$errorNo] : "Unknown error ($errorNo)";
$msg .= ": $errorStr in $errorFile on line $errorLine";
throw new Exception($msg);




I try echo exit at top of class (after namespace) but it showing nothing it means class is not calling. Is there any mistake in di.xml.










share|improve this question




























    0















    I am trying to implement error report in magento 2 so for that purpose i would like to mail all the errors in email. So I started with prefernece.



    di.xml



    <?xml version="1.0"?>
    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
    <preference for="MagentoFrameworkAppErrorHandler" type="PulsestormHelloWorldMVVMModelErrorHandler"/>
    </config>


    ErrorHandler.php



    <?php 
    namespace PulsestormHelloWorldMVVMModel;


    /**
    * An error handler that converts runtime errors into exceptions
    */
    class ErrorHandler extends MagentoFrameworkAppErrorHandler

    protected $errorPhrases = [
    E_ERROR => 'Error',
    E_WARNING => 'Warning',
    E_PARSE => 'Parse Error',
    E_NOTICE => 'Notice',
    E_CORE_ERROR => 'Core Error',
    E_CORE_WARNING => 'Core Warning',
    E_COMPILE_ERROR => 'Compile Error',
    E_COMPILE_WARNING => 'Compile Warning',
    E_USER_ERROR => 'User Error',
    E_USER_WARNING => 'User Warning',
    E_USER_NOTICE => 'User Notice',
    E_STRICT => 'Strict Notice',
    E_RECOVERABLE_ERROR => 'Recoverable Error',
    E_DEPRECATED => 'Deprecated Functionality',
    E_USER_DEPRECATED => 'User Deprecated Functionality',
    ];

    public function handler($errorNo, $errorStr, $errorFile, $errorLine)
    echo"hii"; exit;
    if (strpos($errorStr, 'DateTimeZone::__construct') !== false)
    // there's no way to distinguish between caught system exceptions and warnings
    return false;


    $errorNo = $errorNo & error_reporting();
    if ($errorNo == 0)
    return false;


    $msg = isset($this->errorPhrases[$errorNo]) ? $this->errorPhrases[$errorNo] : "Unknown error ($errorNo)";
    $msg .= ": $errorStr in $errorFile on line $errorLine";
    throw new Exception($msg);




    I try echo exit at top of class (after namespace) but it showing nothing it means class is not calling. Is there any mistake in di.xml.










    share|improve this question


























      0












      0








      0








      I am trying to implement error report in magento 2 so for that purpose i would like to mail all the errors in email. So I started with prefernece.



      di.xml



      <?xml version="1.0"?>
      <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
      <preference for="MagentoFrameworkAppErrorHandler" type="PulsestormHelloWorldMVVMModelErrorHandler"/>
      </config>


      ErrorHandler.php



      <?php 
      namespace PulsestormHelloWorldMVVMModel;


      /**
      * An error handler that converts runtime errors into exceptions
      */
      class ErrorHandler extends MagentoFrameworkAppErrorHandler

      protected $errorPhrases = [
      E_ERROR => 'Error',
      E_WARNING => 'Warning',
      E_PARSE => 'Parse Error',
      E_NOTICE => 'Notice',
      E_CORE_ERROR => 'Core Error',
      E_CORE_WARNING => 'Core Warning',
      E_COMPILE_ERROR => 'Compile Error',
      E_COMPILE_WARNING => 'Compile Warning',
      E_USER_ERROR => 'User Error',
      E_USER_WARNING => 'User Warning',
      E_USER_NOTICE => 'User Notice',
      E_STRICT => 'Strict Notice',
      E_RECOVERABLE_ERROR => 'Recoverable Error',
      E_DEPRECATED => 'Deprecated Functionality',
      E_USER_DEPRECATED => 'User Deprecated Functionality',
      ];

      public function handler($errorNo, $errorStr, $errorFile, $errorLine)
      echo"hii"; exit;
      if (strpos($errorStr, 'DateTimeZone::__construct') !== false)
      // there's no way to distinguish between caught system exceptions and warnings
      return false;


      $errorNo = $errorNo & error_reporting();
      if ($errorNo == 0)
      return false;


      $msg = isset($this->errorPhrases[$errorNo]) ? $this->errorPhrases[$errorNo] : "Unknown error ($errorNo)";
      $msg .= ": $errorStr in $errorFile on line $errorLine";
      throw new Exception($msg);




      I try echo exit at top of class (after namespace) but it showing nothing it means class is not calling. Is there any mistake in di.xml.










      share|improve this question
















      I am trying to implement error report in magento 2 so for that purpose i would like to mail all the errors in email. So I started with prefernece.



      di.xml



      <?xml version="1.0"?>
      <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
      <preference for="MagentoFrameworkAppErrorHandler" type="PulsestormHelloWorldMVVMModelErrorHandler"/>
      </config>


      ErrorHandler.php



      <?php 
      namespace PulsestormHelloWorldMVVMModel;


      /**
      * An error handler that converts runtime errors into exceptions
      */
      class ErrorHandler extends MagentoFrameworkAppErrorHandler

      protected $errorPhrases = [
      E_ERROR => 'Error',
      E_WARNING => 'Warning',
      E_PARSE => 'Parse Error',
      E_NOTICE => 'Notice',
      E_CORE_ERROR => 'Core Error',
      E_CORE_WARNING => 'Core Warning',
      E_COMPILE_ERROR => 'Compile Error',
      E_COMPILE_WARNING => 'Compile Warning',
      E_USER_ERROR => 'User Error',
      E_USER_WARNING => 'User Warning',
      E_USER_NOTICE => 'User Notice',
      E_STRICT => 'Strict Notice',
      E_RECOVERABLE_ERROR => 'Recoverable Error',
      E_DEPRECATED => 'Deprecated Functionality',
      E_USER_DEPRECATED => 'User Deprecated Functionality',
      ];

      public function handler($errorNo, $errorStr, $errorFile, $errorLine)
      echo"hii"; exit;
      if (strpos($errorStr, 'DateTimeZone::__construct') !== false)
      // there's no way to distinguish between caught system exceptions and warnings
      return false;


      $errorNo = $errorNo & error_reporting();
      if ($errorNo == 0)
      return false;


      $msg = isset($this->errorPhrases[$errorNo]) ? $this->errorPhrases[$errorNo] : "Unknown error ($errorNo)";
      $msg .= ": $errorStr in $errorFile on line $errorLine";
      throw new Exception($msg);




      I try echo exit at top of class (after namespace) but it showing nothing it means class is not calling. Is there any mistake in di.xml.







      magento2 error preference






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 35 mins ago









      Teja Bhagavan Kollepara

      3,01241949




      3,01241949










      asked Nov 9 '16 at 7:18









      Ramkishan SutharRamkishan Suthar

      2,28721435




      2,28721435




















          1 Answer
          1






          active

          oldest

          votes


















          1














          Error handler created not through DI, so preferences are not applicable



          see: https://github.com/magento/magento2/blob/develop/lib/internal/Magento/Framework/App/Bootstrap.php#L373



          The best way to log errors its change settings for PsrLogLoggerInterface that already used to log errors. Magento uses Monolog library for logging. For example, you can add MonologHandlerNativeMailerHandler in DI (see: https://github.com/magento/magento2/blob/develop/app/etc/di.xml#L183)



          But if you steel require to change ErrorHandler, you have only one way to do it.
          Copy class to your module and change as you need. Then add in your registration.php include of this file: like include(__DIR__. 'path/to/ErrorHandler.php')






          share|improve this answer

























          • What should i do that for this purpose. I am not getting anything. Please help @KAndy

            – Ramkishan Suthar
            Nov 9 '16 at 8:41











          • I update post with details

            – KAndy
            Nov 9 '16 at 19:01











          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%2f144841%2fwhy-preference-is-not-working-in-magento-2%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









          1














          Error handler created not through DI, so preferences are not applicable



          see: https://github.com/magento/magento2/blob/develop/lib/internal/Magento/Framework/App/Bootstrap.php#L373



          The best way to log errors its change settings for PsrLogLoggerInterface that already used to log errors. Magento uses Monolog library for logging. For example, you can add MonologHandlerNativeMailerHandler in DI (see: https://github.com/magento/magento2/blob/develop/app/etc/di.xml#L183)



          But if you steel require to change ErrorHandler, you have only one way to do it.
          Copy class to your module and change as you need. Then add in your registration.php include of this file: like include(__DIR__. 'path/to/ErrorHandler.php')






          share|improve this answer

























          • What should i do that for this purpose. I am not getting anything. Please help @KAndy

            – Ramkishan Suthar
            Nov 9 '16 at 8:41











          • I update post with details

            – KAndy
            Nov 9 '16 at 19:01















          1














          Error handler created not through DI, so preferences are not applicable



          see: https://github.com/magento/magento2/blob/develop/lib/internal/Magento/Framework/App/Bootstrap.php#L373



          The best way to log errors its change settings for PsrLogLoggerInterface that already used to log errors. Magento uses Monolog library for logging. For example, you can add MonologHandlerNativeMailerHandler in DI (see: https://github.com/magento/magento2/blob/develop/app/etc/di.xml#L183)



          But if you steel require to change ErrorHandler, you have only one way to do it.
          Copy class to your module and change as you need. Then add in your registration.php include of this file: like include(__DIR__. 'path/to/ErrorHandler.php')






          share|improve this answer

























          • What should i do that for this purpose. I am not getting anything. Please help @KAndy

            – Ramkishan Suthar
            Nov 9 '16 at 8:41











          • I update post with details

            – KAndy
            Nov 9 '16 at 19:01













          1












          1








          1







          Error handler created not through DI, so preferences are not applicable



          see: https://github.com/magento/magento2/blob/develop/lib/internal/Magento/Framework/App/Bootstrap.php#L373



          The best way to log errors its change settings for PsrLogLoggerInterface that already used to log errors. Magento uses Monolog library for logging. For example, you can add MonologHandlerNativeMailerHandler in DI (see: https://github.com/magento/magento2/blob/develop/app/etc/di.xml#L183)



          But if you steel require to change ErrorHandler, you have only one way to do it.
          Copy class to your module and change as you need. Then add in your registration.php include of this file: like include(__DIR__. 'path/to/ErrorHandler.php')






          share|improve this answer















          Error handler created not through DI, so preferences are not applicable



          see: https://github.com/magento/magento2/blob/develop/lib/internal/Magento/Framework/App/Bootstrap.php#L373



          The best way to log errors its change settings for PsrLogLoggerInterface that already used to log errors. Magento uses Monolog library for logging. For example, you can add MonologHandlerNativeMailerHandler in DI (see: https://github.com/magento/magento2/blob/develop/app/etc/di.xml#L183)



          But if you steel require to change ErrorHandler, you have only one way to do it.
          Copy class to your module and change as you need. Then add in your registration.php include of this file: like include(__DIR__. 'path/to/ErrorHandler.php')







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Nov 9 '16 at 19:00

























          answered Nov 9 '16 at 7:36









          KAndyKAndy

          16.1k23245




          16.1k23245












          • What should i do that for this purpose. I am not getting anything. Please help @KAndy

            – Ramkishan Suthar
            Nov 9 '16 at 8:41











          • I update post with details

            – KAndy
            Nov 9 '16 at 19:01

















          • What should i do that for this purpose. I am not getting anything. Please help @KAndy

            – Ramkishan Suthar
            Nov 9 '16 at 8:41











          • I update post with details

            – KAndy
            Nov 9 '16 at 19:01
















          What should i do that for this purpose. I am not getting anything. Please help @KAndy

          – Ramkishan Suthar
          Nov 9 '16 at 8:41





          What should i do that for this purpose. I am not getting anything. Please help @KAndy

          – Ramkishan Suthar
          Nov 9 '16 at 8:41













          I update post with details

          – KAndy
          Nov 9 '16 at 19:01





          I update post with details

          – KAndy
          Nov 9 '16 at 19:01

















          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%2f144841%2fwhy-preference-is-not-working-in-magento-2%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

          Magento 2 duplicate PHPSESSID cookie when using session_start() in custom php scriptMagento 2: User cant logged in into to account page, no error showing!Magento duplicate on subdomainGrabbing storeview from cookie (after using language selector)How do I run php custom script on magento2Magento 2: Include PHP script in headerSession lock after using Cm_RedisSessionscript php to update stockMagento set cookie popupMagento 2 session id cookie - where to find it?How to import Configurable product from csv with custom attributes using php scriptMagento 2 run custom PHP script

          Can not update quote_id field of “quote_item” table magento 2Magento 2.1 - We can't remove the item. (Shopping Cart doesnt allow us to remove items before becomes empty)Add value for custom quote item attribute using REST apiREST API endpoint v1/carts/cartId/items always returns error messageCorrect way to save entries to databaseHow to remove all associated quote objects of a customer completelyMagento 2 - Save value from custom input field to quote_itemGet quote_item data using quote id and product id filter in Magento 2How to set additional data to quote_item table from controller in Magento 2?What is the purpose of additional_data column in quote_item table in magento2Set Custom Price to Quote item magento2 from controller

          How to solve knockout JS error in Magento 2 Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?(Magento2) knockout.js:3012 Uncaught ReferenceError: Unable to process bindingUnable to process binding Knockout.js magento 2Cannot read property `scopeLabel` of undefined on Product Detail PageCan't get Customer Data on frontend in Magento 2Magento2 Order Summary - unable to process bindingKO templates are not loading in Magento 2.1 applicationgetting knockout js error magento 2Product grid not load -— Unable to process binding Knockout.js magento 2Product form not loaded in magento2Uncaught ReferenceError: Unable to process binding “if: function()return (isShowLegend()) ” magento 2