From 88dcd755a90001ca1ea87607d7f7121845278b63 Mon Sep 17 00:00:00 2001 From: Art4 Date: Wed, 14 May 2025 09:52:33 +0000 Subject: [PATCH] Replace glob() with stream safe alternative scandir() --- src/Core/Addon/AddonManagerHelper.php | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/Core/Addon/AddonManagerHelper.php b/src/Core/Addon/AddonManagerHelper.php index 66f22bf904..d8873869b9 100644 --- a/src/Core/Addon/AddonManagerHelper.php +++ b/src/Core/Addon/AddonManagerHelper.php @@ -62,21 +62,29 @@ final class AddonManagerHelper implements AddonHelper */ public function getAvailableAddons(): array { - $files = glob($this->getAddonPath() . '/*/'); + $dirs = scandir($this->getAddonPath()); - if (!is_array($files)) { + if (!is_array($dirs)) { return []; } + $files = []; + + foreach ($dirs as $dirname) { + if (in_array($dirname, ['.', '..'])) { + continue; + } + + if (!is_dir($this->getAddonPath() . '/' . $dirname)) { + continue; + } + + $files[] = $dirname; + } + $addons = []; - foreach ($files as $file) { - if (!is_dir($file)) { - continue; - } - - $addonId = basename($file); - + foreach ($files as $addonId) { $addonInfo = $this->getAddonInfo($addonId); if (