mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-07-24 06:14:25 +02:00
Libraries: Add method has($name, $version = null)
This commit is contained in:
parent
7af8bf351c
commit
0f485f1257
@ -36,4 +36,39 @@ class Libraries implements IteratorAggregate
|
|||||||
|
|
||||||
return $library;
|
return $library;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a library with the given name has been registered
|
||||||
|
*
|
||||||
|
* Passing a version constraint also verifies that the library's version matches.
|
||||||
|
*
|
||||||
|
* @param string $name
|
||||||
|
* @param string $version
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function has($name, $version = null)
|
||||||
|
{
|
||||||
|
$libVersion = null;
|
||||||
|
foreach ($this->libraries as $library) {
|
||||||
|
if ($library->getName() === $name) {
|
||||||
|
$libVersion = $library->getVersion();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($libVersion === null) {
|
||||||
|
return false;
|
||||||
|
} elseif ($version === null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$operator = '=';
|
||||||
|
if (preg_match('/^([<>=]{1,2})\s*v?((?:[\d.]+)(?:\D+)?)$/', $version, $match)) {
|
||||||
|
$operator = $match[1];
|
||||||
|
$version = $match[2];
|
||||||
|
}
|
||||||
|
|
||||||
|
return version_compare($libVersion, $version, $operator);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user