protected function installCode(PackageInterface $package) { parent::installCode($package); parent::initializeBinDir(); $isWindows = defined('PHP_WINDOWS_VERSION_BUILD'); $php_bin = $this->binDir . ($isWindows ? '/composer-php.bat' : '/composer-php'); $installPath = $this->getInstallPath($package); $vars = array('os' => $isWindows ? 'windows' : 'linux', 'php_bin' => $php_bin, 'pear_php' => $installPath, 'php_dir' => $installPath, 'bin_dir' => $installPath . '/bin', 'data_dir' => $installPath . '/data', 'version' => $package->getPrettyVersion()); $packageArchive = $this->getInstallPath($package) . '/' . pathinfo($package->getDistUrl(), PATHINFO_BASENAME); $pearExtractor = new PearPackageExtractor($packageArchive); $pearExtractor->extractTo($this->getInstallPath($package), array('php' => '/', 'script' => '/bin', 'data' => '/data'), $vars); if ($this->io->isVerbose()) { $this->io->write(' Cleaning up'); } unlink($packageArchive); }
protected function installCode(PackageInterface $package) { parent::installCode($package); $isWindows = Platform::isWindows(); $php_bin = $this->binDir . ($isWindows ? '/composer-php.bat' : '/composer-php'); if (!$isWindows) { $php_bin = '/usr/bin/env ' . $php_bin; } $installPath = $this->getInstallPath($package); $vars = array('os' => $isWindows ? 'windows' : 'linux', 'php_bin' => $php_bin, 'pear_php' => $installPath, 'php_dir' => $installPath, 'bin_dir' => $installPath . '/bin', 'data_dir' => $installPath . '/data', 'version' => $package->getPrettyVersion()); $packageArchive = $this->getInstallPath($package) . '/' . pathinfo($package->getDistUrl(), PATHINFO_BASENAME); $pearExtractor = new PearPackageExtractor($packageArchive); $pearExtractor->extractTo($this->getInstallPath($package), array('php' => '/', 'script' => '/bin', 'data' => '/data'), $vars); $this->io->writeError(' Cleaning up', true, IOInterface::VERBOSE); $this->filesystem->unlink($packageArchive); }
/** * {@inheritDoc} */ public function download(PackageInterface $package, $path) { parent::download($package, $path); $fileName = $this->getFileName($package, $path); if ($this->io->isVerbose()) { $this->io->write(' Installing PEAR package'); } try { $pearExtractor = new PearPackageExtractor($fileName); $pearExtractor->extractTo($path); if ($this->io->isVerbose()) { $this->io->write(' Cleaning up'); } unlink($fileName); } catch (\Exception $e) { // clean up $this->filesystem->removeDirectory($path); throw $e; } $this->io->write(''); }