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

Is it possible to make a 9x9 table fit within the default margins?

Avoiding the "not like other girls" trope?

How seriously should I take size and weight limits of hand luggage?

That's an odd coin - I wonder why

Why can't we say "I have been having a dog"?

Simplify trigonometric expression using trigonometric identities

MT "will strike" & LXX "will watch carefully" (Gen 3:15)?

"Eavesdropping" vs "Listen in on"

Finitely generated matrix groups whose eigenvalues are all algebraic

Would a grinding machine be a simple and workable propulsion system for an interplanetary spacecraft?

Masking layers by a vector polygon layer in QGIS

How to pronounce fünf in 45

Can you teleport closer to a creature you are Frightened of?

Could you use a laser beam as a modulated carrier wave for radio signal?

Mathematica command that allows it to read my intentions

Is it OK to decorate a log book cover?

Can this transistor (2n2222) take 6V on emitter-base? Am I reading datasheet incorrectly?

Why does freezing point matter when picking cooler ice packs?

Shortening a title without changing its meaning

How can I separate the number from the unit in argument?

Airship steam engine room - problems and conflict

Prodigo = pro + ago?

Small nick on power cord from an electric alarm clock, and copper wiring exposed but intact

How exploitable/balanced is this homebrew spell: Spell Permanency?



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 2 days ago









      Teja Bhagavan Kollepara

      3,00841949




      3,00841949










      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

          Sum ergo cogito? 1 nng

          419 nièngy_Soadمي 19bal1.5o_g

          Queiggey Chernihivv 9NnOo i Zw X QqKk LpB