Skip to content

Latest commit

 

History

History
39 lines (28 loc) · 975 Bytes

notify-command-error.md

File metadata and controls

39 lines (28 loc) · 975 Bytes

config/services.yaml

services:

    App\EventListener\CommandFailureListener:
        tags:
            - { name: kernel.event_listener, method: onCommandFailure,  event: console.error }

src/EventListener/CommandFailureListener.php

<?php
namespace App\EventListener;

use Symfony\Component\Console\Event\ConsoleErrorEvent;
use TurboLabIt\Messengers\SlackMessenger;


class CommandFailureListener
{
    public function __construct(protected SlackMessenger $slackMessenger)
    { }


    public function onCommandFailure(ConsoleErrorEvent $event)
    {
        // https://symfony.com/doc/current/components/console/events.html#the-consoleevents-error-event

        $text =
            "🛑 my-app is failing" . PHP_EOL . PHP_EOL .
            "Command: *" . $event->getCommand()?->getName() . "*" . PHP_EOL .
            "Error: *" . $event->getError()->getMessage() . "*";

        $this->slackMessenger->sendErrorMessage($text);
    }
}