diff --git a/composer.lock b/composer.lock index b26726364f..7d5e540e67 100644 --- a/composer.lock +++ b/composer.lock @@ -3329,6 +3329,12 @@ "url": "https://git.drupal.org/project/coder.git", "reference": "984c54a7b1e8f27ff1c32348df69712afd86b17f" }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/klausi/coder/zipball/984c54a7b1e8f27ff1c32348df69712afd86b17f", + "reference": "984c54a7b1e8f27ff1c32348df69712afd86b17f", + "shasum": "" + }, "require": { "ext-mbstring": "*", "php": ">=5.4.0", diff --git a/core/lib/Drupal/Component/Scaffold/composer.json b/core/lib/Drupal/Component/Scaffold/composer.json index 54b1ce8950..6f77bf7ad0 100644 --- a/core/lib/Drupal/Component/Scaffold/composer.json +++ b/core/lib/Drupal/Component/Scaffold/composer.json @@ -8,12 +8,18 @@ "composer-plugin-api": "^1.0.0" }, "require-dev": { - "composer/composer": "^1.8" + "composer/composer": "^1.8", + "symfony/process": "~3.4.0" }, "autoload": { - "psr-4": { - "Drupal\\Component\\Scaffold\\": "src/" - } + "classmap": [ + "CommandProvider.php", + "DrupalScaffoldCommand.php", + "FileFetcher.php", + "Handler.php", + "Plugin.php", + "PrestissimoFileFetcher.php" + ] }, "extra": { "class": "Drupal\\Component\\Scaffold\\Plugin" diff --git a/core/tests/Drupal/Tests/Component/Scaffold/PluginTest.php b/core/tests/Drupal/Tests/Component/Scaffold/PluginTest.php index 9b43914bbc..92c4338edd 100644 --- a/core/tests/Drupal/Tests/Component/Scaffold/PluginTest.php +++ b/core/tests/Drupal/Tests/Component/Scaffold/PluginTest.php @@ -4,6 +4,7 @@ use Composer\Util\Filesystem; use PHPUnit\Framework\TestCase; +use Symfony\Component\Process\Process; /** * Tests composer plugin functionality. @@ -83,7 +84,7 @@ public function testComposerInstallAndUpdate() { $this->assertFileExists($exampleScaffoldFile, 'Scaffold file should be automatically installed.'); $this->fs->remove($exampleScaffoldFile); - $this->assertFileNotExists($exampleScaffoldFile, 'Scaffold file should not be exist.'); + $this->assertFileNotExists($exampleScaffoldFile, 'Scaffold file should not exist.'); $this->composer('drupal:scaffold'); $this->assertFileExists($exampleScaffoldFile, 'Scaffold file should be installed by "drupal:scaffold" command.'); @@ -150,11 +151,12 @@ protected function composerJSONDefaults() { * Composer command name, arguments and/or options. */ protected function composer($command) { - chdir($this->tmpDir); - passthru(escapeshellcmd($this->drupalRootDir . '/vendor/bin/composer ' . $command), $exit_code); - if ($exit_code !== 0) { - throw new \Exception('Composer returned a non-zero exit code'); - } + $commands = [ + $this->drupalRootDir . '/vendor/bin/composer', + $command, + ]; + $ps = new Process(implode(' ', $commands), $this->tmpDir); + $ps->mustRun(); } /**