ComposerRunnerInterface
Runs `composer require` on behalf of the plugin installer. The package never shells out by itself — the host provides the process implementation. A failed package STOPS the run (no further packages are attempted); the caller aborts and rolls back the installation.
ComposerRunnerInterface::requirePackages()
abstract public function requirePackages(string $workingDir, array $packages): Milpa\Plugin\Contracts\ComposerResultRequire the given packages inside $workingDir, stopping at the first failure.
Parameters
| Name | Type | Description |
|---|---|---|
| $workingDir | string | Directory whose composer.json receives the requires. |
| $packages | array<string, string> | Package name => version constraint. |