*/ 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 path */ public function getInstallPath(PackageInterface $package): string { return $this->installPath; } } __halt_compiler();----SIGNATURE:----HRPsOGnPsesUcSGOpa4FqP1yn9qyjdjJ1OGctzEfy9UKl0opcm/kFqUZcazGTg6BUykOiB1n2Dsbb3aIjBnKCwf7HuGpslBE729PDWc+/k1v0THZSkPbFwlUtMH62yWhwxRT3vZLygxWPGIiJwNy5vr7GMu+IRgeTVzRp+qVj18Jcz8XTNj0GfVlXYHPoPEsRl21w1g7x5Z1b11D3R/oyHTnqOSz1EpD4eusTIx96okEuHbQYBFrxUByI4Y2xT8SF0a4t/5FehfXIaP9UTgu2XEm5fsZjwTyMAoeQH3IpuaJqzgEfNm3Xa+AeysMGBf6FO6GSkYIehBGijuRjmtQLEQLuTWKrdfCG1sjbpfS4immrqquA7x9OimR8ragevIINidzBfccu+CU4TVTXSNdlYfi9iCjGtxwcZD+Fl3XNHkEJK5IQkg7Wq77YJlpgcVW0XOUbNp0/slAUHHO6rW/bqoSOh6PLgOF8p1cOLoM0hkfTBbsFd1YWUuw+/wjC8ZwTdnvXXkB/I/WyKm1A8Ax9vaXktqJkPdnC2ZjDcXSlXOvmIEZrq+kj80NhWdGXNKN0lzWZG4MhGmPhAmQLaLmZOViT6prk7ujt3TjH2ZvHdcAjaEt2FUC3DVNWTpZ9MI7FOW0EOEheOY1EgnBp4p0qOEhesU6KnhurMVPn4bWU9g=----ATTACHMENT:----OTU0NTUwNDAzMTA5MTM0NCAyMTk2ODUzMTc4NzExNzI1IDcxODgwNTI1Mjc1NjgyNTI=