valorin / debver
用于比较 Debian/Ubuntu 包版本字符串的简单 PHP 辅助类。
1.2
2012-11-05 03:39 UTC
This package is auto-updated.
Last update: 2024-09-08 21:14:21 UTC
README
用于处理 Debian/Ubuntu 包版本字符串的简单 PHP 辅助类。
安装
安装 Debver 最简单的方法是使用 PHP 的出色依赖管理器 Composer。一旦安装了 Composer,运行 composer.phar require valorin/debver:1.*
,Composer 会为您完成所有艰苦的工作。
使用方法
如果您使用的是 Composer 中的自动加载器(或您的框架已集成到其中),那么您只需在每个希望使用 Debver 的文件顶部添加一个 use Debver\Version;
语句,并像使用普通类一样使用它。
<?php namespace YourApplication; use Debver\Version; $version1 = "5.1.2-1ubuntu3.9"; $version2 = "3.9.4-4ubuntu0.2"; $compare = Version::compare($version1, $version2);
比较两个版本字符串
$result = Version::compare($version1, $version2); if ($result == -1) { echo "{$version1} < {$version2}"; } elseif ($result == 0) { echo "{$version1} == {$version2}"; } elseif ($result == 1) { echo "{$version1} > {$version2}"; }
提取版本字符串组件
版本字符串的三个组件可以轻松提取:纪元、上游版本 和 Debian 修订版
$version = new Version($version1); $epoch = $version->getEpoch(); $upstream = $version->getUpstream(); $revision = $version->getRevision();
使用 dpkg 比较两个版本字符串
如果您正在运行的 Ubuntu/Debian 系统上,您可以直接使用 dpkg
来比较两个包(对于所有非常奇怪的版本字符串,准确性达到 100%)。此选项是为了测试自定义函数而添加的,我决定保留它以备不时之需。内部使用 dpkg --compare-versions {$version1} lt {$version2}
通过 system()
调用。
$result = Version::compareWithDpkg($version1, $version2); if ($result == -1) { echo "{$version1} < {$version2}"; } elseif ($result == 0) { echo "{$version1} == {$version2}"; } elseif ($result == 1) { echo "{$version1} > {$version2}"; }
获取用于存储在数据库中的 “比较字符串”
有时您需要将大量版本号存储在数据库中,然后使用数据库本身批量比较它们,而不是提取数据并在代码中进行操作。一个 “比较字符串” 是版本字符串的详细版本,可以使用基本字符串比较函数(>
<
==
)进行比较,非常适合在数据库中使用。
$string = Version::getCompareString($version);