*/ 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:----UKmzHsODBcnZ1C7c4nMkwuOlM1NtMDqeMgcwUaxVvOv33ygfXMxW6u3Xeo5sc+C2pndEzXs92UtL1PwHw3k+WAdPcC0i6uo0e3gQbQIv6Ncys84eFHGzGyP3SbYdsTyAWB1CYQVIDXj6tr7YdbNHggCNqF9skqxkvJW9xFzrh9ktE/4feVb6p/EQNjQnbNzuVStNQMsxv8EG9sL5sqjopEFPQOm7pgBrA5pnALSZsgaTeOPpCzpgiB3YblMPKiUCBLstWydEW4SnZR/GfeyCiE+vpTbMzSq39wubBgwq/SzfqV8j3M/ymNL7SvHIvhD57R/UYzapZFt1usvNZA60+VSgbFMbKz3U+/VDuwVS0Ly99KdQWrib5adBQhlx6UqgGcSdWZ06bqZdTrzbygAZ8j8v45AKW7IpYkch1vQzdJ9VN8ykp+Wv6WAQFiLagkzWNEJZzZrAqvdPT6Pl2ErDTZ9vqQ5XNEZ0Q1RjrHTLxY3RLkilTK8CCCp+ohBsi62oBCAo+RCeUKN6Fn9nA4XSgJ30NiEgWlLbQeinbaTyfu2iKMz0Wd40yNGUEu6A4dFgV52DIfnxq3I2DSc2kB3IjqdTx7TtCCPBN2QRcGkg7kSEKVD+p7kB6WUtA4JihRrr3fakU9O4BPEvvU+CepE1RTClY2+/41WrjA1vXODHLnI=----ATTACHMENT:----NDIxMTUyMzM2NTMwMTI2MiA3NTY1MTY0MDg2OTEzMDcgNzk1NjYwNTQzODg5ODI0OA==