/
home
/
obinna
/
html
/
boazapp
/
vendor
/
symfony
/
maker-bundle
/
src
/
Event
/
Upload File
HOME
<?php /* * This file is part of the Symfony MakerBundle package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Bundle\MakerBundle\Event; use Symfony\Bundle\MakerBundle\Exception\RuntimeCommandException; use Symfony\Component\Console\ConsoleEvents; use Symfony\Component\Console\Event\ConsoleErrorEvent; use Symfony\Component\Console\Event\ConsoleTerminateEvent; use Symfony\Component\Console\Style\SymfonyStyle; use Symfony\Component\EventDispatcher\EventSubscriberInterface; /** * Prints certain exceptions in a pretty way and silences normal exception handling. * * @author Ryan Weaver <ryan@knpuniversity.com> */ final class ConsoleErrorSubscriber implements EventSubscriberInterface { private $setExitCode = false; public function onConsoleError(ConsoleErrorEvent $event): void { if (!$event->getError() instanceof RuntimeCommandException) { return; } // prevent any visual logging from appearing $event->stopPropagation(); // prevent the exception from actually being thrown $event->setExitCode(0); $this->setExitCode = true; $io = new SymfonyStyle($event->getInput(), $event->getOutput()); $io->error($event->getError()->getMessage()); } public function onConsoleTerminate(ConsoleTerminateEvent $event): void { if (!$this->setExitCode) { return; } // finally set a non-zero exit code $event->setExitCode(1); } public static function getSubscribedEvents(): array { return [ ConsoleEvents::ERROR => 'onConsoleError', ConsoleEvents::TERMINATE => 'onConsoleTerminate', ]; } }