<pre class="wp-block-syntaxhighlighter-code">
var_dump(version_compare('v2.0.0', 'v2.0.0-h.1', '<'));
</pre>
<pre class="wp-block-syntaxhighlighter-code">
$directories = glob(module_path('ThemeStoreDB') . '/Resources/setting_migrations' . '/*', GLOB_ONLYDIR);
$versions = array_map(fn($directory): string => pathinfo($directory)['basename'], $directories);
$availableVersions = array_filter($versions, function ($v) use ($originalThemeVersionSemantic, $themeVersionSemantic) {
return version_compare($v, $originalThemeVersionSemantic, '>') && version_compare($v, $themeVersionSemantic, '<=');
});
usort($availableVersions, 'version_compare');
return $availableVersions;
</pre>
Array
(
[0] => v2.0.15-h.6
[1] => v2.0.15-rc.7
[2] => v2.0.15
[3] => v2.0.16-h.2
[4] => v2.0.16-h.3
[5] => v2.0.16
[6] => v2.0.17-h.0
[7] => v2.0.20-h.1
[8] => v2.0.20
)
Array
(
[0] => v2.0.15-rc.7
[1] => v2.0.15
[2] => v2.0.15-h.6
[3] => v2.0.16-h.2
[4] => v2.0.16-h.3
[5] => v2.0.16
[6] => v2.0.17-h.0
[7] => v2.0.20
[8] => v2.0.20-h.1
)
$directories = glob(module_path('ThemeStoreDB') . '/Resources/setting_migrations' . '/*', GLOB_ONLYDIR);
$versions = array_map(fn($directory): string => pathinfo($directory)['basename'], $directories);
$specialVersionIdentifier = '-h.'; // 特殊版本标识
$version_compare = function ($v1, $v2) use ($specialVersionIdentifier) {
if (Str::contains($v1, $specialVersionIdentifier) && !Str::contains($v2, $specialVersionIdentifier) && Str::before($v1, '-') == Str::before($v2, '-')) {
return 1;
} elseif (!Str::contains($v1, $specialVersionIdentifier) && Str::contains($v2, $specialVersionIdentifier) && Str::before($v1, '-') == Str::before($v2, '-')) {
return -1;
} else {
return version_compare($v1, $v2);
}
};
usort($versions, $version_compare);
print_r($versions);
exit;

Array
(
[0] => v2.0.15-rc.7
[1] => v2.0.15
[2] => v2.0.15-h.6
[3] => v2.0.16
[4] => v2.0.16-h.2
[5] => v2.0.16-h.3
[6] => v2.0.17-h.0
[7] => v2.0.20
[8] => v2.0.20-h.1
)
PHP / Laravel / Yii2 老项目维护与长期技术支持
如果你的 PHP / Laravel / Yii2 项目已经上线,但遇到原开发离职、Bug 长期无人修复、接口不稳定、性能下降、代码难以接手等问题,可以联系我做一次远程技术排查。
适合以下情况:
✅ 老旧 PHP 系统无人维护
✅ Laravel / Yii2 项目 Bug 修复
✅ 后台管理系统小功能迭代
✅ RESTful API 接口排查
✅ MySQL / Redis / Nginx 性能问题
✅ 长期远程兼职维护
可先从一次小问题开始:
✅ 线上报错排查
✅ 接口异常分析
✅ 慢查询与性能瓶颈定位
✅ 代码结构初步评估
✅ 部署环境与日志检查
如需咨询,请联系我,并注明:PHP 维护咨询。
联系方式:
Telegram:@shuijingwan
微信:13980074657
邮箱:shuijingwanwq@gmail.com

发表回复