src/FlexApp/EventListener/CommentErrorListener.php line 52

Open in your IDE?
  1. <?php
  2. namespace FlexApp\EventListener;
  3. use Exception;
  4. use FlexApp\Events\BugEvent;
  5. use FlexApp\Service\DevsAndAdminsNotifier;
  6. use FlexApp\Service\Logger as MonoLogger;
  7. use FlexApp\Service\ParametersProvider;
  8. use Throwable;
  9. /**
  10.  * Лиссенер проблем с компонентом комментариев.
  11.  */
  12. class CommentErrorListener
  13. {
  14.     private MonoLogger $logger;
  15.     private DevsAndAdminsNotifier $notifier;
  16.     private ParametersProvider $parametersProvider;
  17.     /**
  18.      * InternalServerErrorCommentHandlerListener constructor.
  19.      *
  20.      * @param MonoLogger $logger
  21.      * @param DevsAndAdminsNotifier $notifier
  22.      * @param ParametersProvider $parametersProvider
  23.      */
  24.     public function __construct(MonoLogger $loggerDevsAndAdminsNotifier $notifierParametersProvider $parametersProvider)
  25.     {
  26.         $this->logger $logger;
  27.         $this->notifier $notifier;
  28.         $this->parametersProvider $parametersProvider;
  29.     }
  30.     /**
  31.      * @param BugEvent $bugEvent
  32.      *
  33.      * @throws Exception
  34.      */
  35.     public function onCommentError(BugEvent $bugEvent)
  36.     {
  37.         $this->writeLog($bugEvent->getThrowable());
  38. //        $this->notifyDevs($bugEvent->getThrowable()); //Перенесено в InternalServerErrorNotifierSubscriber
  39.     }
  40.     /**
  41.      * @param BugEvent $bugEvent
  42.      *
  43.      * @throws Exception
  44.      */
  45.     public function onSendToPortalFailed(BugEvent $bugEvent)
  46.     {
  47.         $this->notifyDevs($bugEvent->getThrowable());
  48.     }
  49.     /**
  50.      * @param Throwable $e
  51.      *
  52.      * @throws Exception
  53.      */
  54.     private function notifyDevs(Throwable $e)
  55.     {
  56.         $this->notifier->notify($e->getMessage(), $e->getTraceAsString(), 'comment_fails_emails');
  57.     }
  58.     private function writeLog(Throwable $e)
  59.     {
  60.         $this->logger->monologLogger->error($e->getMessage() . '; ' $e->getTraceAsString());
  61.     }
  62. }