<?php namespace LakeDrops\Docker4Drupal; use Composer\Plugin\Capability\CommandProvider as ComposerCommandProvider; use Composer\Script\Event; use Composer\Script\ScriptEvents; use LakeDrops\Component\Composer\BasePlugin; /** * Composer plugin for handling docker4drupal setup. */ class Plugin extends BasePlugin { /** * {@inheritdoc} */ public function getHandlerClass(): string { return Handler::class; } /** * {@inheritdoc} */ public function getCapabilities(): array { return [ ComposerCommandProvider::class => CommandProvider::class, ]; } /** * {@inheritdoc} */ public static function getSubscribedEvents(): array { return [ ScriptEvents::POST_CREATE_PROJECT_CMD => 'configureProject', ScriptEvents::POST_INSTALL_CMD => 'configureProject', ScriptEvents::POST_UPDATE_CMD => 'updateProject', ]; } /** * Configure project event callback. * * @param \Composer\Script\Event $event * The event that triggered the call of this function. */ public function configureProject(Event $event): void { /** @var Handler $handler */ $handler = $this->handler; $handler ->setEvent($event) ->configureProject(); } /** * Update project event callback. * * @param \Composer\Script\Event $event * The event that triggered the call of this function. */ public function updateProject(Event $event): void { /** @var Handler $handler */ $handler = $this->handler; $handler ->setEvent($event) ->updateProject(); } }