* @license https://github.com/raspap/raspap-webgui/blob/master/LICENSE */ declare(strict_types=1); namespace RaspAP\Plugins; class PluginInstaller { private static $instance = null; public function __construct() { $this->pluginPath = 'plugins'; } // Returns a single instance of PluginInstaller public static function getInstance(): PluginInstaller { if (self::$instance === null) { self::$instance = new PluginInstaller(); } return self::$instance; } public function getPlugins(): array { $plugins = []; if (file_exists($this->pluginPath)) { $directories = scandir($this->pluginPath); foreach ($directories as $directory) { $pluginClass = "RaspAP\\Plugins\\$directory\\$directory"; $pluginFile = $this->pluginPath . "/$directory/$directory.php"; if (file_exists($pluginFile) && class_exists($pluginClass)) { $plugins[] = $pluginClass; } } } return $plugins; } }