From 676953da0b47399cd62f79cf5d15e10e231cda4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= Date: Thu, 18 Dec 2025 14:40:25 +0100 Subject: [PATCH] fix: Remove use statements for top-level classes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As the namespace is removed when building index.php, have use statements for top-level classes triggers a PHP warning Signed-off-by: Côme Chilliet --- index.php | 11 ++++------- lib/Updater.php | 11 ++++------- updater.phar | Bin 1323006 -> 1322980 bytes 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/index.php b/index.php index 2d630209..b4166ef0 100644 --- a/index.php +++ b/index.php @@ -27,9 +27,6 @@ class LogException extends \Exception { } -use Closure; -use CurlHandle; - class Updater { /** @var int */ public const LAST_STEP = 12; @@ -51,7 +48,7 @@ class Updater { private int $previousProgress = 0; - private ?Closure $downloadProgress = null; + private ?\Closure $downloadProgress = null; /** * Updater constructor @@ -617,7 +614,7 @@ private function getUpdateServerResponse(): array { * * @throws \Exception */ - public function downloadUpdate(string $url = '', ?Closure $downloadProgress = null): void { + public function downloadUpdate(string $url = '', ?\Closure $downloadProgress = null): void { $this->silentLog('[info] downloadUpdate()'); $this->downloadProgress = $downloadProgress; @@ -694,7 +691,7 @@ private function getDownloadURLs(): array { } - private function getCurl(string $url): CurlHandle { + private function getCurl(string $url): \CurlHandle { $ch = curl_init($url); if ($ch === false) { throw new \Exception('Fail to open cUrl handler'); @@ -773,7 +770,7 @@ private function isAbleToDecompress(string $ext): bool { return $ext === 'zip' && extension_loaded($ext); } - private function downloadProgressCallback(CurlHandle $resource, int $download_size, int $downloaded): void { + private function downloadProgressCallback(\CurlHandle $resource, int $download_size, int $downloaded): void { if ($download_size !== 0) { $progress = (int)round($downloaded * 100 / $download_size); if ($progress > $this->previousProgress) { diff --git a/lib/Updater.php b/lib/Updater.php index 9a915277..d7a61cab 100644 --- a/lib/Updater.php +++ b/lib/Updater.php @@ -9,9 +9,6 @@ namespace NC\Updater; -use Closure; -use CurlHandle; - class Updater { /** @var int */ public const LAST_STEP = 12; @@ -33,7 +30,7 @@ class Updater { private int $previousProgress = 0; - private ?Closure $downloadProgress = null; + private ?\Closure $downloadProgress = null; /** * Updater constructor @@ -599,7 +596,7 @@ private function getUpdateServerResponse(): array { * * @throws \Exception */ - public function downloadUpdate(string $url = '', ?Closure $downloadProgress = null): void { + public function downloadUpdate(string $url = '', ?\Closure $downloadProgress = null): void { $this->silentLog('[info] downloadUpdate()'); $this->downloadProgress = $downloadProgress; @@ -676,7 +673,7 @@ private function getDownloadURLs(): array { } - private function getCurl(string $url): CurlHandle { + private function getCurl(string $url): \CurlHandle { $ch = curl_init($url); if ($ch === false) { throw new \Exception('Fail to open cUrl handler'); @@ -755,7 +752,7 @@ private function isAbleToDecompress(string $ext): bool { return $ext === 'zip' && extension_loaded($ext); } - private function downloadProgressCallback(CurlHandle $resource, int $download_size, int $downloaded): void { + private function downloadProgressCallback(\CurlHandle $resource, int $download_size, int $downloaded): void { if ($download_size !== 0) { $progress = (int)round($downloaded * 100 / $download_size); if ($progress > $this->previousProgress) { diff --git a/updater.phar b/updater.phar index b851fb5cace8d248ac9914e7b29ed2d3054feca1..74502472b44145c39075a5defd35f97751dee5d8 100755 GIT binary patch delta 9162 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 delta 8981 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 Y=sracW_B|jj~wL#3%}4SyMOlo0)Fz{7XSbN