function FixtureManipulator::getComposerInitOptionsForPackage
Transform the received $package into options for `composer init`.
Parameters
array $package: A Composer package definition. Must include the `name` and `type` keys.
Return value
array The corresponding `composer init` options.
1 call to FixtureManipulator::getComposerInitOptionsForPackage()
- FixtureManipulator::createPathRepo in core/
modules/ package_manager/ tests/ modules/ fixture_manipulator/ src/ FixtureManipulator.php - Creates a path repo.
File
-
core/
modules/ package_manager/ tests/ modules/ fixture_manipulator/ src/ FixtureManipulator.php, line 515
Class
- FixtureManipulator
- Manipulates a test fixture using Composer commands.
Namespace
Drupal\fixture_manipulatorCode
private static function getComposerInitOptionsForPackage(array $package) : array {
return array_filter(array_map(function ($k, $v) {
switch ($k) {
case 'name':
case 'description':
case 'type':
return "--{$k}={$v}";
case 'require':
case 'require-dev':
if (empty($v)) {
return NULL;
}
$requirements = array_map(fn(string $req_package, string $req_version): string => "{$req_package}:{$req_version}", array_keys($v), array_values($v));
return "--{$k}=" . implode(',', $requirements);
case 'version':
// This gets set in the repository metadata itself.
return NULL;
case 'extra':
// Cannot be set using `composer init`, only `composer config` can.
return NULL;
default:
throw new \InvalidArgumentException($k);
}
}, array_keys($package), array_values($package)));
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.