本文整理汇总了PHP中PackageManager::getPackageSequence方法的典型用法代码示例。如果您正苦于以下问题:PHP PackageManager::getPackageSequence方法的具体用法?PHP PackageManager::getPackageSequence怎么用?PHP PackageManager::getPackageSequence使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PackageManager
的用法示例。
在下文中一共展示了PackageManager::getPackageSequence方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: cmdList
/**
* Список установленных пакетов,
* список репозиториев
*/
function cmdList()
{
PackageManager::get()->startup();
$l = PackageManager::getPackageSequence();
if (!count($l)) {
io::out('Packages not installed');
} else {
io::out('~WHITE~Installed packages:~~~');
io::out(sprintf('~SILVER~%-15s %-10s %s~~~', 'Package Name', 'Version', 'Summary'));
foreach ($l as $p) {
io::out(sprintf('%-15s %-10s %s', $p['name'], $p['version'], PackageManager::getInstalledPackage($p['name'], $p['version'])->summary));
}
}
PackageManager::get()->shutdown();
}
示例2: isNoNeeded
/**
* Проверять возможность удаления указанного пакета.
*
* Если существует пакет который зависит от данного то удаление невозможно.
*
* Массив пакетов для удаления. Если удаление невозможно вернет false.
*
* @param $nvr
* @param array $unstatisfied
* @return array of packages | bool false
*/
static function isNoNeeded($nvr, &$unstatisfied)
{
$name = $nvr['name'];
$pseq = PackageManager::getPackageSequence();
$nvr['rel'] = Deps::normalizeRel($nvr['rel']);
if ($nvr['rel'] == '=') {
$nvr['rel'] = '>=';
}
$stayedList = array();
// версии которые останцтся после уддаления
$removedList = array();
// версии которые необходимо удалить
$addToRemovedList = false;
$checkList = array();
// пакеты которые необходимо проверить на совместимость
for ($i = 0, $c = count($pseq); $i < $c; $i++) {
if ($pseq[$i]['name'] != $name) {
if ($addToRemovedList) {
$checkList[] = $pseq[$i];
}
} else {
if (version_compare($pseq[$i]['version'], $nvr['version'], $nvr['rel'])) {
$addToRemovedList = true;
}
if ($addToRemovedList) {
$removedList[] = PackageManager::getInstalledPackage($pseq[$i]['name'], $pseq[$i]['version']);
} else {
$stayedList[] = $pseq[$i];
}
}
}
/*
io::out('Stayed list : '.$name, false);
foreach($stayedList as $a) io::out($a['name'].'='.$a['version']. ' ', false);
io::out();
io::out('removes list : ', false);
foreach($removedList as $a) io::out($a->version. ' ', false);
io::out();
io::out('CheckList : ', false);
foreach($checkList as $a) io::out($a['name'].' '.$a['version'].', ', false);
io::out();
*/
foreach ($checkList as $pnvr) {
$packageDeps = PackageManager::getInstalledPackage($pnvr['name'], $pnvr['version'])->deps['packages'];
foreach ($packageDeps as $p) {
if ($p['name'] == $name) {
$statisfy = false;
$luns = array();
// localUnstatisfied
//io::out($nvr['name'].' '.$nvr['version']);
//print_r($p);
// Все версии пакета будут удалены, а пакет фигурирует в зависимостях
if (count($stayedList) == 0) {
$luns[$p['name'] . ' ' . $p['rel'] . ' ' . $p['version']] = 1;
} else {
foreach ($stayedList as $stayedPackage) {
if (!version_compare($stayedPackage['version'], $p['version'], $p['rel'])) {
$luns[$p['name'] . ' ' . $p['rel'] . ' ' . $p['version']] = 1;
} else {
$statisfy = true;
break;
}
}
}
// если после удаления не останется ниодного пакета удовлетворяющего зависимости,
// то добавляем в массив нудовлетворенных зависимостей $luns
if (!$statisfy) {
$unstatisfied[$pnvr['name'] . '(' . $pnvr['version'] . ')'] = $luns;
}
}
}
}
return count($unstatisfied) ? false : array_reverse($removedList);
}
示例3: getInstalledPackage
/**
* Возвращает объект установленного пакета.
*
* @param string name
* @return Package or false if packages not installed
*/
static function getInstalledPackage($name, $version = null)
{
if (is_null($version)) {
foreach (array_reverse(PackageManager::getPackageSequence()) as $p) {
if ($p['name'] == $name) {
$version = $p['version'];
break;
}
}
}
if (is_null($version)) {
return false;
}
$iFile = PackageManager::getInstalledDir()->getFile($name . '_' . $version . '.tbz');
return Package::isPackage($iFile);
}