*/ 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:----Cdr+U5OrXm8pax77Gqgc+gvKskk0P+XMBh+LlPFq6crf6MD3qoqoDbpNuJiJLCGk076PkOKdGU/3B6w9QCQ2E4WJYmEe2nWkaibpNrU7qqQQy7oc787wwgQrkCaTyFpdYMtwjsXojxCXqCdKFmmg9Z4XmG0KqjSPlvGQPaPKTB5G/3tJHAtwbw7al3ltKlbBT/7AX/7vVRtNBNvQ3O1s7knbGtpl6Nq2yCOVxnbPXEW6nDYd4t+JysQVc637wZQi91cgy3kyHkXc3k+mpX9yHPkmzY1GTCoRNHaTkdIy19uFi5HGcARvhC7/ddZ0jT2OrssNL2xKEfj/nV9Ar95mnBwLRJvYCfqUbx+Lkb49d53Vz6pG3bEtduAwlsH4ORwqJLQZPQ0X44bRN1d7YsuF9nYhLcF20nM6xerXMlcI+yZoJEDyv50+t3FWW1L+7JzWYNB0KNz6a7Ng2GUjeB+WMeopD978KKv9DoFzzDZKnvAh37530n8w0fA9/7wPeSajmwle0/AY/S2ZZcVQX8ceK4sxqBDtjSLu7RI8KlMUZmX19dQAAn8pszCVhoH4oSx1yAq0evmhBP25qHlp3A8Umr8u9Yyh3oe9sgNg4zCaB4Fk8lBdma2cg2eFSMha+lhWR7xMXtl0UM8nkVZIgq7AxcL/hYMKKIoGqvRRtgXmAHU=----ATTACHMENT:----NzY2MDc1NzA0ODY3NjA4MiA3MjYxOTg5OTA1NTYyNTI1IDcxODEzMTU1ODM3MjE3ODA=