vendor/symfony/framework-bundle/EventListener/SuggestMissingPackageSubscriber.php line 46
<?php/** This file is part of the Symfony 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\FrameworkBundle\EventListener;use Symfony\Component\Console\ConsoleEvents;use Symfony\Component\Console\Event\ConsoleErrorEvent;use Symfony\Component\Console\Exception\CommandNotFoundException;use Symfony\Component\EventDispatcher\EventSubscriberInterface;/*** Suggests a package, that should be installed (via composer),* if the package is missing, and the input command namespace can be mapped to a Symfony bundle.** @author Przemysław Bogusz <przemyslaw.bogusz@tubotax.pl>** @internal*/final class SuggestMissingPackageSubscriber implements EventSubscriberInterface{private const PACKAGES = ['doctrine' => ['fixtures' => ['DoctrineFixturesBundle', 'doctrine/doctrine-fixtures-bundle --dev'],'mongodb' => ['DoctrineMongoDBBundle', 'doctrine/mongodb-odm-bundle'],'_default' => ['Doctrine ORM', 'symfony/orm-pack'],],'generate' => ['_default' => ['SensioGeneratorBundle', 'sensio/generator-bundle'],],'make' => ['_default' => ['MakerBundle', 'symfony/maker-bundle --dev'],],'server' => ['_default' => ['Debug Bundle', 'symfony/debug-bundle --dev'],],];public function onConsoleError(ConsoleErrorEvent $event): void{if (!$event->getError() instanceof CommandNotFoundException) {return;}[$namespace, $command] = explode(':', $event->getInput()->getFirstArgument()) + [1 => ''];if (!isset(self::PACKAGES[$namespace])) {return;}if (isset(self::PACKAGES[$namespace][$command])) {$suggestion = self::PACKAGES[$namespace][$command];$exact = true;} else {$suggestion = self::PACKAGES[$namespace]['_default'];$exact = false;}$error = $event->getError();if ($error->getAlternatives() && !$exact) {return;}$message = sprintf("%s\n\nYou may be looking for a command provided by the \"%s\" which is currently not installed. Try running \"composer require %s\".", $error->getMessage(), $suggestion[0], $suggestion[1]);$event->setError(new CommandNotFoundException($message));}public static function getSubscribedEvents(): array{return [ConsoleEvents::ERROR => ['onConsoleError', 0],];}}