*/ class ProjectInstaller implements InstallerInterface { /** @var string */ private $installPath; /** @var DownloadManager */ private $downloadManager; /** @var Filesystem */ private $filesystem; public function __construct(string $installPath, DownloadManager $dm, Filesystem $fs) { $this->installPath = rtrim(strtr($installPath, '\\', '/'), '/').'/'; $this->downloadManager = $dm; $this->filesystem = $fs; } /** * Decides if the installer supports the given type */ public function supports(string $packageType): bool { return true; } /** * @inheritDoc */ public function isInstalled(InstalledRepositoryInterface $repo, PackageInterface $package): bool { return false; } /** * @inheritDoc */ public function download(PackageInterface $package, ?PackageInterface $prevPackage = null): ?PromiseInterface { $installPath = $this->installPath; if (file_exists($installPath) && !$this->filesystem->isDirEmpty($installPath)) { throw new \InvalidArgumentException("Project directory $installPath is not empty."); } if (!is_dir($installPath)) { mkdir($installPath, 0777, true); } return $this->downloadManager->download($package, $installPath, $prevPackage); } /** * @inheritDoc */ public function prepare( $type, PackageInterface $package, ?PackageInterface $prevPackage = null, ): ?PromiseInterface { return $this->downloadManager->prepare($type, $package, $this->installPath, $prevPackage); } /** * @inheritDoc */ public function cleanup( $type, PackageInterface $package, ?PackageInterface $prevPackage = null, ): ?PromiseInterface { return $this->downloadManager->cleanup($type, $package, $this->installPath, $prevPackage); } /** * @inheritDoc */ public function install(InstalledRepositoryInterface $repo, PackageInterface $package): ?PromiseInterface { return $this->downloadManager->install($package, $this->installPath); } /** * @inheritDoc */ public function update( InstalledRepositoryInterface $repo, PackageInterface $initial, PackageInterface $target, ): ?PromiseInterface { throw new \InvalidArgumentException("not supported"); } /** * @inheritDoc */ public function uninstall(InstalledRepositoryInterface $repo, PackageInterface $package): ?PromiseInterface { throw new \InvalidArgumentException("not supported"); } /** * Returns the installation path of a package * * @return string configured install path */ public function getInstallPath(PackageInterface $package): string { return $this->installPath; } }__halt_compiler();----SIGNATURE:----Iaxn+wXLBTix1leM0ker6GMSEaiQTvstlPoaksIeHn46rJkhdN6Nm7EU9oI5OKBrpS31eRgxcO3a7qFcgVlfeNH5rzM8FtM2peY/uVO+RaJb9fRGP4NyjxMUX60yaiRsdvcnCVK5tCRLLo68DX1F296hmiq7kEBR+8gENImCkA01gdUKAFMtPtyBOrUDcOUjhSfdgVEEADQGvOTKO4MCo6zK7xhzGiPHsBTJMgCs3BRvqun0lGZ4fAVWTvCtGX5WFt3AiSnGYWEDUZ1XyyFHKD1z/9ky/OQszHSNkkXNMqHg7GtNi/sRB53+BqzqH9nzl/YOJe3erzN3Pj0HgXNg7lHMDI+5VGaCvsUVvvbf2uvzQvXBHPKsbmovMA8jxESAo3X4utEN9gJ2EtztlMztNZwjXKyxV7tA9cMr70ktom1ykax+a8D1dqlYg7jnU9j24wboOMXPOCGVrxgL9D7vEKCWl+Ib51DeCsENlZnaLhvTlOA1zGFEXCCLhZNRTyUZGfWi89L/G96i6/Or0mufE2VCywTn1gGJnccUpykDdox+5TtmAzn+MVI4aH2ZaikAmWjhRYZV6NrPtu5W5eiuAkEuhv630QxjpWOPP470jdycDDhIwP3R5BnzFvPZ9fPfpFInvsA07U7sld3Kt6egioV5/i+JbB1j/6gTOzWenss=----ATTACHMENT:----MzIwMDExNDM1NDA3Mjk2NCA4ODcyNjY1NzkyNzc5NjY2IDMyNDk0MTczMTUwMTQ4OTY=