Initial commit

This commit is contained in:
billz 2024-12-20 18:52:09 -08:00
parent 89c4f16e45
commit 247b35b254

View File

@ -0,0 +1,52 @@
<?php
/**
* Plugin Installer class
*
* @description Class to handle installation of user plugins
* @author Bill Zimmerman <billzimmerman@gmail.com>
* @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;
}
}