*/
public function getAvailableAddons(): array
{
- $files = glob($this->getAddonPath() . '/*/');
+ $dirs = scandir($this->getAddonPath());
- if (!is_array($files)) {
+ if (!is_array($dirs)) {
return [];
}
- $addons = [];
+ $files = [];
+
+ foreach ($dirs as $dirname) {
+ if (in_array($dirname, ['.', '..'])) {
+ continue;
+ }
- foreach ($files as $file) {
- if (!is_dir($file)) {
+ if (!is_dir($this->getAddonPath() . '/' . $dirname)) {
continue;
}
- $addonId = basename($file);
+ $files[] = $dirname;
+ }
+
+ $addons = [];
+ foreach ($files as $addonId) {
$addonInfo = $this->getAddonInfo($addonId);
if (