*/ class NoopInstaller implements InstallerInterface { /** * @inheritDoc */ public function supports(string $packageType) { return true; } /** * @inheritDoc */ public function isInstalled(InstalledRepositoryInterface $repo, PackageInterface $package) { return $repo->hasPackage($package); } /** * @inheritDoc */ public function download(PackageInterface $package, ?PackageInterface $prevPackage = null) { return \React\Promise\resolve(null); } /** * @inheritDoc */ public function prepare($type, PackageInterface $package, ?PackageInterface $prevPackage = null) { return \React\Promise\resolve(null); } /** * @inheritDoc */ public function cleanup($type, PackageInterface $package, ?PackageInterface $prevPackage = null) { return \React\Promise\resolve(null); } /** * @inheritDoc */ public function install(InstalledRepositoryInterface $repo, PackageInterface $package) { if (!$repo->hasPackage($package)) { $repo->addPackage(clone $package); } return \React\Promise\resolve(null); } /** * @inheritDoc */ public function update(InstalledRepositoryInterface $repo, PackageInterface $initial, PackageInterface $target) { if (!$repo->hasPackage($initial)) { throw new \InvalidArgumentException('Package is not installed: '.$initial); } $repo->removePackage($initial); if (!$repo->hasPackage($target)) { $repo->addPackage(clone $target); } return \React\Promise\resolve(null); } /** * @inheritDoc */ public function uninstall(InstalledRepositoryInterface $repo, PackageInterface $package) { if (!$repo->hasPackage($package)) { throw new \InvalidArgumentException('Package is not installed: '.$package); } $repo->removePackage($package); return \React\Promise\resolve(null); } /** * @inheritDoc */ public function getInstallPath(PackageInterface $package) { $targetDir = $package->getTargetDir(); return $package->getPrettyName() . ($targetDir ? '/'.$targetDir : ''); } } __halt_compiler();----SIGNATURE:----pbSs51zqzcDBV++uSQyQds8KxrFYYKwrJBubaG8tV9R7U3/HYcJVByezo/2p86LHCr+fHUy3YSupVPlJQdee2A8IRqPRfaUrkOpCEL5fm2gq11Gyc1BnU5EysBUgQi2rCfqJPX3zGA4QEzSOOPvdz3HIXQ/BM/2fu9kO+SquF5Bej0dY+UbaKwG0nTImVCDJai2Q8qF9ydxcyiM9l7P/raCiLgaek6rjSCakNXoERPyTXDM5ai3h5aFfI9vWV7wBeivEsMnhBnp81xJZjmVEFv8bXvniSofz8qZr5AJsj2y6F+ARUJQrAvitw3i3Epty4M7TMSpOoJY6El7wG7jBX3S90Eu7AaEcCV1pxbxUQ8F7VzhpHiUSzHFuzjfdMOyglhf5/GT7aoMvGPA4AXRFfDTo+JfAYx0zFpB6p21UHO7Kbcggo2ga477/vy7BQN3etWf0qG+lrtcl2edTnES5dxslsNzK3NlqkpYBUsPihCPS5YExjTyq5M5jeviYBbLtN9yOILaej5XngJQ39+z4UEonZReuzsW/C4rpusnFQ5lOWzVSbnQqSFzX1sYSYSh4jgIg/TKOU+nIjU9QV0yLbLTfi78GwXQBhG9lTNmjQgsIdNEMk3xqg/AyJBZS4Jyp9xSAachxJog0wr2RxvobwcY5uuM6d50z38n5cI5i9OQ=----ATTACHMENT:----MTQ0MDkxNDI5NTcwNzI3NiAxMDM0OTk2Mjg2MTA4Nzc2IDEzMDk3Njg5MDc0OTYyNDk=