Skip to content

Commit

Permalink
Avoid the use of composer Package::setExtras
Browse files Browse the repository at this point in the history
  • Loading branch information
romainneutron committed May 10, 2014
1 parent 4ef8487 commit 8808017
Showing 1 changed file with 15 additions and 11 deletions.
26 changes: 15 additions & 11 deletions Composer/ScriptHandler.php
Expand Up @@ -22,6 +22,18 @@
*/
class ScriptHandler
{
/**
* Composer variables are declared static so that an event could update
* a composer.json and set new options, making them immediately available
* to forthcoming listeners.
*/
private static $options = array(
'symfony-app-dir' => 'app',
'symfony-web-dir' => 'web',
'symfony-assets-install' => 'hard',
'symfony-cache-warmup' => false,
);

/**
* Asks if the new directory structure should be used, installs the structure if needed.
*
Expand All @@ -38,11 +50,8 @@ public static function defineDirectoryStructure(CommandEvent $event)
$rootDir = __DIR__ . '/../../../../../../..';
$appDir = $options['symfony-app-dir'];
$webDir = $options['symfony-web-dir'];
$binDir = $options['symfony-bin-dir'] = 'bin';
$varDir = $options['symfony-var-dir'] = 'var';

// make new options such as symfony-var-dir available for other listener in this event
$event->getComposer()->getPackage()->setExtra(array_replace($event->getComposer()->getPackage()->getExtra(), $options));
$binDir = self::$options['symfony-bin-dir'] = 'bin';
$varDir = self::$options['symfony-var-dir'] = 'var';

static::updateDirectoryStructure($event, $rootDir, $appDir, $binDir, $varDir, $webDir);
}
Expand Down Expand Up @@ -446,12 +455,7 @@ protected static function updateDirectoryStructure(CommandEvent $event, $rootDir

protected static function getOptions(CommandEvent $event)
{
$options = array_merge(array(
'symfony-app-dir' => 'app',
'symfony-web-dir' => 'web',
'symfony-assets-install' => 'hard',
'symfony-cache-warmup' => false,
), $event->getComposer()->getPackage()->getExtra());
$options = array_merge(self::$options, $event->getComposer()->getPackage()->getExtra());

$options['symfony-assets-install'] = getenv('SYMFONY_ASSETS_INSTALL') ?: $options['symfony-assets-install'];

Expand Down

0 comments on commit 8808017

Please sign in to comment.