public function __construct(PackageInterface $package = null, Composer $composer = null, IOInterface $io = null) { if (null === $package) { $package = $composer->getPackage(); } $extraOxidRoot = $extraModuleVendor = false; if (null !== $package) { $extra = $package->getExtra(); if (isset($extra['oxid-root'])) { foreach ($this->locations as $name => $location) { $this->locations[$name] = "{$extra['oxid-root']}/{$location}"; } $extraOxidRoot = true; } if (isset($extra['module-vendor'])) { $this->locations['module'] = str_replace('modules/', "modules/{$extra['module-vendor']}/", $this->locations['module']); $extraModuleVendor = true; } } $composerPackage = $composer->getPackage(); if (null !== $composerPackage) { $extra = $composerPackage->getExtra(); if (isset($extra['oxid-root']) && !$extraOxidRoot) { foreach ($this->locations as $name => $location) { $this->locations[$name] = "{$extra['oxid-root']}/{$location}"; } } if (isset($extra['module-vendor']) && !$extraModuleVendor) { $this->locations['module'] = str_replace('modules/', "modules/{$extra['module-vendor']}/", $this->locations['module']); } } parent::__construct($package, $composer, $io); }
/** * Return the install path based on package type. * * Relies on built-in BaseInstaller behaviour with one exception: silverstripe/framework * must be installed to 'sapphire' and not 'framework' if the version is <3.0.0 * * @param PackageInterface $package * @param string $frameworkType * @return string */ public function getInstallPath(PackageInterface $package, $frameworkType = '') { if ($package->getName() == 'silverstripe/framework' && preg_match('/^\\d+\\.\\d+\\.\\d+/', $package->getVersion()) && version_compare($package->getVersion(), '2.999.999') < 0) { return $this->templatePath($this->locations['module'], array('name' => 'sapphire')); } else { return parent::getInstallPath($package, $frameworkType); } }
/** * Add installer-name for CakePHP >= 3.0.0 * * @param PackageInterface $package * @param string $frameworkType * @return string */ public function getInstallPath(PackageInterface $package, $frameworkType = '') { $extra = $package->getExtra(); if (empty($extra['installer-name']) && $this->matchesCakeVersion('>=', '3.0.0')) { $this->setInstallerName($package); } return parent::getInstallPath($package, $frameworkType); }
/** * getInstallPath * * @param PackageInterface $package * @param string $frameworkType * @return void */ public function getInstallPath(PackageInterface $package, $frameworkType = '') { $installPath = parent::getInstallPath($package, $frameworkType); $type = $this->package->getType(); if ($type === 'oxid-module') { $this->prepareVendorDirectory($installPath); } return $installPath; }
public function getInstallPath(PackageInterface $package, $frameworkType = '') { $version = "{$frameworkType}Locations"; $this->locations = $this->{$version}; return parent::getInstallPath($package, $frameworkType); }
/** * {@inheritdoc} */ protected function templatePath($path, array $vars = array()) { $templatePath = parent::templatePath($path, $vars); $this->checkDuplicates($templatePath, $vars); return $templatePath; }