From abdaaab6e67672864b7d548c267ae1ff8fa7e871 Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Thu, 5 Mar 2026 11:11:02 +0800 Subject: [PATCH] Refactor CheckUpdateResult logic to simplify version comparison --- src/Package/Artifact/zig.php | 5 ++++- src/StaticPHP/Artifact/Downloader/Type/FileList.php | 2 +- src/StaticPHP/Artifact/Downloader/Type/Git.php | 2 +- src/StaticPHP/Artifact/Downloader/Type/PECL.php | 2 +- src/StaticPHP/Artifact/Downloader/Type/PIE.php | 2 +- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Package/Artifact/zig.php b/src/Package/Artifact/zig.php index 0d334e5f..b42eee3a 100644 --- a/src/Package/Artifact/zig.php +++ b/src/Package/Artifact/zig.php @@ -72,6 +72,9 @@ class zig $index_json = default_shell()->executeCurl('https://ziglang.org/download/index.json', retries: $downloader->getRetry()); $index_json = json_decode($index_json ?: '', true); $latest_version = null; + if (!is_array($index_json)) { + throw new DownloaderException('Failed to fetch Zig version index for update check'); + } foreach ($index_json as $version => $data) { if ($version !== 'master') { $latest_version = $version; @@ -84,7 +87,7 @@ class zig return new CheckUpdateResult( old: $old_version, new: $latest_version, - needUpdate: $old_version === null || version_compare($latest_version, $old_version, '>'), + needUpdate: $old_version === null || $latest_version !== $old_version, ); } diff --git a/src/StaticPHP/Artifact/Downloader/Type/FileList.php b/src/StaticPHP/Artifact/Downloader/Type/FileList.php index b3264533..b868210d 100644 --- a/src/StaticPHP/Artifact/Downloader/Type/FileList.php +++ b/src/StaticPHP/Artifact/Downloader/Type/FileList.php @@ -32,7 +32,7 @@ class FileList implements DownloadTypeInterface, CheckUpdateInterface return new CheckUpdateResult( old: $old_version, new: $version, - needUpdate: $old_version === null || version_compare($version, $old_version, '>'), + needUpdate: $old_version === null || $version !== $old_version, ); } diff --git a/src/StaticPHP/Artifact/Downloader/Type/Git.php b/src/StaticPHP/Artifact/Downloader/Type/Git.php index 1ee9da4d..d5822e69 100644 --- a/src/StaticPHP/Artifact/Downloader/Type/Git.php +++ b/src/StaticPHP/Artifact/Downloader/Type/Git.php @@ -120,7 +120,7 @@ class Git implements DownloadTypeInterface, CheckUpdateInterface return new CheckUpdateResult( old: $old_version, new: $version, - needUpdate: $old_version === null || version_compare($version, $old_version, '>'), + needUpdate: $old_version === null || $version !== $old_version, ); } throw new DownloaderException("No matching branch found for regex {$config['regex']}."); diff --git a/src/StaticPHP/Artifact/Downloader/Type/PECL.php b/src/StaticPHP/Artifact/Downloader/Type/PECL.php index 0b14b05d..78ceed3a 100644 --- a/src/StaticPHP/Artifact/Downloader/Type/PECL.php +++ b/src/StaticPHP/Artifact/Downloader/Type/PECL.php @@ -22,7 +22,7 @@ class PECL implements DownloadTypeInterface, CheckUpdateInterface return new CheckUpdateResult( old: $old_version, new: $version, - needUpdate: $old_version === null || version_compare($version, $old_version, '>'), + needUpdate: $old_version === null || $version !== $old_version, ); } diff --git a/src/StaticPHP/Artifact/Downloader/Type/PIE.php b/src/StaticPHP/Artifact/Downloader/Type/PIE.php index a84cffe5..14996c5a 100644 --- a/src/StaticPHP/Artifact/Downloader/Type/PIE.php +++ b/src/StaticPHP/Artifact/Downloader/Type/PIE.php @@ -40,7 +40,7 @@ class PIE implements DownloadTypeInterface, CheckUpdateInterface return new CheckUpdateResult( old: $old_version, new: $new_version, - needUpdate: $old_version === null || version_compare($new_version, $old_version, '>'), + needUpdate: $old_version === null || $new_version !== $old_version, ); }