Как запустить команду Symfony Console после установки композитора?

Мой composer.json содержит следующее объявление:

  "post-install-cmd": [ "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" ], 

Я хочу запустить пользовательскую консольную команду, которая у меня есть в src/MyBundle/Command/MyCommand.php . Как добавить это в скрипты для работы в композиторе?

Вы можете увидеть, как работает перенос postinstall для Sensio DistributionBundle.

Например, так вы можете вызвать команду Hello World пакета Acme Demo:

ScriptHandler

 <?php namespace Acme\DemoBundle\Composer; use Composer\Script\CommandEvent; class ScriptHandler extends \Sensio\Bundle\DistributionBundle\Composer\ScriptHandler { /** * Call the demo command of the Acme Demo Bundle. * * @param $event CommandEvent A instance */ public static function helloWorld(CommandEvent $event) { $options = self::getOptions($event); $consoleDir = self::getConsoleDir($event, 'hello world'); if (null === $consoleDir) { return; } // $extraParam = ''; // if (!$options['who']) { // $extraParam = ' --who'; // } static::executeCommand($event, $consoleDir, 'acme:hello', $options['process-timeout']); } } 

Вы можете управлять дополнительным параметром в самом json-файле.

composer.json

 "post-install-cmd": [ "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::removeSymfonyStandardFiles", "Acme\\DemoBundle\\Composer\\ScriptHandler::helloWorld" ], 

проверенный

Я расширяю класс ScriptHandler пакета распространения sensio версии:

 sensio/distribution-bundle (v3.0.18) 

надеюсь эта помощь