<?php
namespace App\EventListener;
use Symfony\Component\Console\Event\ConsoleCommandEvent;
use Symfony\Component\Console\Event\ConsoleErrorEvent;
use Symfony\Component\Console\Event\ConsoleSignalEvent;
use Symfony\Component\Console\Event\ConsoleTerminateEvent;
class CommandEventListener
{
public function onConsoleCommand(ConsoleCommandEvent $event): void
{}
public function onConsoleTerminate(ConsoleTerminateEvent $event)
{
$output = $event->getOutput();
if( $command = $event->getCommand() ) {
$output->writeln([
'',
sprintf('After running command <info>%s</info>', $command->getName())
]);
}
}
public function onConsoleSignal(ConsoleSignalEvent $event)
{
$output = $event->getOutput();
if( $command = $event->getCommand() ) {
$signal = $event->getHandlingSignal();
$pid = getmypid();
//15 - kill
//2 - ctrl+c
//9 - kill -9
$output->writeln([
'',
sprintf('At signal on command <info>%s</info> get signal: %s', $command->getName(), $signal)
]);
}
}
public function onConsoleException(ConsoleErrorEvent $event)
{
$output = $event->getOutput();
if( $command = $event->getCommand() ) {
$output->writeln([
'',
sprintf('Oops, exception thrown while running command <info>%s</info>', $command->getName())
]);
$exitCode = $event->getExitCode();
}
}
}