protected function matchesCakeVersion($matcher, $version)
{
if (class_exists('Composer\\Semver\\Constraint\\MultiConstraint')) {
$multiClass = 'Composer\\Semver\\Constraint\\MultiConstraint';
$constraintClass = 'Composer\\Semver\\Constraint\\Constraint';
} else {
$multiClass = 'Composer\\Package\\LinkConstraint\\MultiConstraint';
$constraintClass = 'Composer\\Package\\LinkConstraint\\VersionConstraint';
}
$repositoryManager = $this->composer->getRepositoryManager();
if ($repositoryManager) {
$repos = $repositoryManager->getLocalRepository();
if (!$repos) {
return false;
}
$cake3 = new $multiClass(array(new $constraintClass($matcher, $version), new $constraintClass('!=', '9999999-dev')));
$pool = new Pool('dev');
$pool->addRepository($repos);
$packages = $pool->whatProvides('cakephp/cakephp');
foreach ($packages as $package) {
$installed = new $constraintClass('=', $package->getVersion());
if ($cake3->matches($installed)) {
return true;
}
}
}
return false;
}