*/ class MetapackageInstaller implements InstallerInterface { /** @var IOInterface */ private $io; public function __construct(IOInterface $io) { $this->io = $io; } /** * @inheritDoc */ public function supports(string $packageType) { return $packageType === 'metapackage'; } /** * @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) { $this->io->writeError(" - " . InstallOperation::format($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); } $this->io->writeError(" - " . UpdateOperation::format($initial, $target)); $repo->removePackage($initial); $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); } $this->io->writeError(" - " . UninstallOperation::format($package)); $repo->removePackage($package); return \React\Promise\resolve(null); } /** * @inheritDoc */ public function getInstallPath(PackageInterface $package) { return ''; } } __halt_compiler();----SIGNATURE:----FeOifLYK3cDhNIyLOxfaL8sFfNTmK+jSiuuMobgkdi4WWCt0/SEMi3OvaRxpc0f4o361twG8JlqbYGHzhFCSkiYONgXQO4OuuWeHYT/DBPnZzx7Kybiww6ZxVZHJJDkV4uY5EdnSx+5IehJDjlcrudXNUd9IvFW/VuXizUJWAts6YarUYDEncoQm7hjliln1B80SUVNk0rDk0UvwA9fUciGsQM28J6P6tOKb5KU2lzthUBQCi1SgdWeTZaZHsjJzlmKIb9ivP5RNL/N3VcWNGdjhjmhGQDoaR+YLuYeJ2LtgepLMv0qtQvRafF9irxVd0Riq2kr6HRiW4PwkcxwRZ37hy+jMlUXM5cG+beOrxohXTJv1wjvYWj4K3jhFEektCwE1lxO779h/E+euwS4bK3AULZKVArYbNDpxwTCAKZR8W1DTEAALWz6lsMgqNQvqDaYGYunMLKDTizmH1uaI60ZPMHWlARvVhnU6pObX/hU+m2Hn9+CcotislXNlKvAcuaJzyEjpGDp+Fnulu/Vl7TqtoMot1nFw8ylWUPC/9EsWlKFwfdGErflqaypO8DhhE7MWFK+Nk78xI7ZGPPeS1u/dUkn4uJWA+vbMBObJGZIw8xUlIgMScFF40esg3FSbD1Fe+3sUgHFUGJVzUfPGIYEbIqV677F3wreiED4tR+s=----ATTACHMENT:----MTE0NDQzNjIwMDI4MTkyNyA4ODU4OTM2OTAyMDA4MzQ1IDQ2NTk1OTk5MzA2MjMwNjU=