public function testMultiVersionMatchFails() { $versionRequireStart = new VersionConstraint('>', '1.0'); $versionRequireEnd = new VersionConstraint('<', '1.2'); $versionProvide = new VersionConstraint('==', '1.2'); $multiRequire = new MultiConstraint(array($versionRequireStart, $versionRequireEnd)); $this->assertFalse($multiRequire->matches($versionProvide)); }
/** * Check if CakePHP version matches against a version * * @param string $matcher * @param string $version * @return bool */ protected function matchesCakeVersion($matcher, $version) { $repositoryManager = $this->composer->getRepositoryManager(); if ($repositoryManager) { $repos = $repositoryManager->getLocalRepository(); if (!$repos) { return false; } $cake3 = new MultiConstraint(array(new VersionConstraint($matcher, $version), new VersionConstraint('!=', '9999999-dev'))); $pool = new Pool('dev'); $pool->addRepository($repos); $packages = $pool->whatProvides('cakephp/cakephp'); foreach ($packages as $package) { $installed = new VersionConstraint('=', $package->getVersion()); if ($cake3->matches($installed)) { return true; break; } } } return false; }
/** * Change the default plugin location when cakephp >= 3.0 */ public function getLocations() { $repositoryManager = $this->composer->getRepositoryManager(); if ($repositoryManager) { $repos = $repositoryManager->getLocalRepository(); if (!$repos) { return $this->locations; } $cake3 = new MultiConstraint(array(new VersionConstraint('>=', '3.0.0'), new VersionConstraint('!=', '9999999-dev'))); $pool = new Pool('dev'); $pool->addRepository($repos); $packages = $pool->whatProvides('cakephp/cakephp'); foreach ($packages as $package) { $installed = new VersionConstraint('=', $package->getVersion()); if ($cake3->matches($installed)) { $this->locations['plugin'] = 'plugins/{$name}/'; break; } } } return $this->locations; }