<?php namespace LakeDrops\Behat4Drupal; use Composer\Composer; use Composer\EventDispatcher\EventSubscriberInterface; use Composer\IO\IOInterface; use Composer\Plugin\PluginInterface; use Composer\Script\Event; use Composer\Script\ScriptEvents; /** * Composer plugin for handling drupal scaffold. */ class Plugin implements PluginInterface, EventSubscriberInterface { /** * The handler object for events. * * @var \LakeDrops\Behat4Drupal\Handler */ protected $handler; /** * {@inheritdoc} */ public function activate(Composer $composer, IOInterface $io) { $this->handler = new Handler($composer, $io); } /** * {@inheritdoc} */ public static function getSubscribedEvents() { return array( ScriptEvents::POST_CREATE_PROJECT_CMD => 'postCreateProject', ); } /** * Post create project event callback. * * @param \Composer\Script\Event $event * The event that triggered the plugin. */ public function postCreateProject(Event $event) { $this->handler->configureProject($event); } /** * Script callback for putting in composer scripts to configure the project. * * @param \Composer\Script\Event $event * The event that triggered the call of this function. */ public static function config(Event $event) { $handler = new Handler($event->getComposer(), $event->getIO()); $handler->configureProject($event, TRUE); } }