DependencyResolver
Resolves plugin and Composer dependencies before installation. Checks: - Plugin dependencies (dependencies.plugins in milpa.json) - Composer packages (dependencies.composer in milpa.json) - Contract requirements (contracts.requires)
DependencyResolver::__construct()
public function __construct(string $rootPath):Parameters
| Name | Type | Description |
|---|---|---|
| $rootPath | string |
DependencyResolver::resolve()
public function resolve(Milpa\Plugin\PluginManifest $manifest, array $installedPlugins): Milpa\DTO\DependencyResolutionResolve all dependencies for a plugin to be installed.
Parameters
| Name | Type | Description |
|---|---|---|
| $manifest | PluginManifest | The plugin to install |
| $installedPlugins | array<array{name: string, version?: string, provides?: array<string>, requires?: array<string>}> |
DependencyResolver::checkComposerDeps()
public function checkComposerDeps(array $requiredPackages): arrayCheck Composer dependencies against what's currently installed. Reads root composer.lock to check installed versions.
Parameters
| Name | Type | Description |
|---|---|---|
| $requiredPackages | array<string, string> | Package => constraint |
Returns
Packages that need to be installed (package => constraint)