123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?php
- namespace Fgm\Drupal\Composer;
- use Composer\Composer;
- use Composer\EventDispatcher\Event;
- use Composer\EventDispatcher\EventSubscriberInterface;
- use Composer\Installer\InstallerEvents;
- use Composer\Installer\PackageEvents;
- use Composer\IO\IOInterface;
- use Composer\Plugin\Capability\CommandProvider;
- use Composer\Plugin\Capable;
- use Composer\Plugin\PluginEvents;
- use Composer\Plugin\PluginInterface;
- use Composer\Script\ScriptEvents;
- use Doctrine\Common\Util\Debug;
- class Builder implements Capable, EventSubscriberInterface, PluginInterface {
- /**
- * @var IOInterface
- */
- protected $io;
- /**
- * Apply plugin modifications to Composer
- *
- * @param Composer $composer
- * @param IOInterface $io
- */
- public function activate(Composer $composer, IOInterface $io) {
- Debug::dump($composer);
- Debug::dump($io);
- $this->io = $io;
- }
- public function getCapabilities() {
- return [
- CommandProvider::class => Builder::class,
- ];
- }
- /**
- * For CommandProvider::class.
- */
- public function getCommands() {
- echo __METHOD__ . "\n";
- return [];
- }
- /**
- * Returns an array of event names this subscriber wants to listen to.
- *
- * The array keys are event names and the value can be:
- *
- * * The method name to call (priority defaults to 0)
- * * An array composed of the method name to call and the priority
- * * An array of arrays composed of the method names to call and respective
- * priorities, or 0 if unset
- *
- * For instance:
- *
- * * array('eventName' => 'methodName')
- * * array('eventName' => array('methodName', $priority))
- * * array('eventName' => array(array('methodName1', $priority), array('methodName2'))
- *
- * @return array The event names to listen to
- */
- public static function getSubscribedEvents() {
- return [
- InstallerEvents::POST_DEPENDENCIES_SOLVING => 'onEvent',
- InstallerEvents::PRE_DEPENDENCIES_SOLVING => 'onEvent',
- PackageEvents::POST_PACKAGE_INSTALL => 'onEvent',
- PackageEvents::POST_PACKAGE_UNINSTALL => 'onEvent',
- PackageEvents::POST_PACKAGE_UPDATE => 'onEvent',
- PackageEvents::PRE_PACKAGE_INSTALL => 'onEvent',
- PackageEvents::PRE_PACKAGE_UNINSTALL => 'onEvent',
- PackageEvents::PRE_PACKAGE_UPDATE => 'onEvent',
- PluginEvents::COMMAND => 'onEvent',
- PluginEvents::INIT => 'onEvent',
- PluginEvents::PRE_FILE_DOWNLOAD => 'onEvent',
- ScriptEvents::POST_ARCHIVE_CMD => 'onEvent',
- ScriptEvents::POST_AUTOLOAD_DUMP => 'onEvent',
- ScriptEvents::POST_CREATE_PROJECT_CMD => 'onEvent',
- ScriptEvents::POST_INSTALL_CMD => 'onEvent',
- ScriptEvents::POST_PACKAGE_INSTALL => 'onEvent',
- ScriptEvents::POST_PACKAGE_UNINSTALL => 'onEvent',
- ScriptEvents::POST_PACKAGE_UPDATE => 'onEvent',
- ScriptEvents::POST_ROOT_PACKAGE_INSTALL => 'onEvent',
- ScriptEvents::POST_STATUS_CMD => 'onEvent',
- ScriptEvents::POST_UPDATE_CMD => 'onEvent',
- ScriptEvents::PRE_ARCHIVE_CMD => 'onEvent',
- ScriptEvents::PRE_AUTOLOAD_DUMP => 'onEvent',
- ScriptEvents::PRE_INSTALL_CMD => 'onEvent',
- ScriptEvents::PRE_PACKAGE_INSTALL => 'onEvent',
- ScriptEvents::PRE_PACKAGE_UNINSTALL => 'onEvent',
- ScriptEvents::PRE_PACKAGE_UPDATE => 'onEvent',
- ScriptEvents::PRE_STATUS_CMD => 'onEvent',
- ScriptEvents::PRE_UPDATE_CMD => 'onEvent',
- ];
- }
- public function onEvent(Event $event) {
- $this->io->write(Debug::dump($event, 2, false, false));
- }
- }
|