Version 0.9.5 beta - update for the autoloading of plugins in the module folder.

This commit is contained in:
Stephan Kasdorf
2020-01-03 13:04:08 +01:00
parent 6010342ad6
commit 18344ebb8f

View File

@@ -18,10 +18,12 @@ class Autoloader
const MODULE_FOLDER = "module";
const INTERFACE_FOLDER = "interfaces";
const TRAIT_FOLDER = "traits";
const PLUGINS_FOLDER = "plugins";
const SETTINGS_SECTION = "AUTOLOADER";
const SETTINGS_CLASS_POS = "class.pos";
const SETTINGS_TRAIT_POS = "trait.pos";
const SETTINGS_IFACE_POS = "iface.pos";
const SETTINGS_CLASS_PLUGIN_POS = "class.plugin.pos";
const REGEX_PATH_NAME = "[NAME]";
private static $_filesInFoler = array();
@@ -82,6 +84,10 @@ class Autoloader
{
$moduleSortOrder = Config::getInstance()->getConfig()[self::SETTINGS_SECTION][self::SETTINGS_IFACE_POS];
}
if($section == self::SETTINGS_CLASS_PLUGIN_POS)
{
$moduleSortOrder = Config::getInstance()->getConfig()[self::SETTINGS_SECTION][self::SETTINGS_CLASS_PLUGIN_POS];
}
if(sizeof($moduleSortOrder)>0)
{
foreach ($modules as $module)
@@ -227,6 +233,8 @@ class Autoloader
);
}
}
if(is_array($interfaces))
{
asort($interfaces);
$Sinterfaces = self::sortOrderModules($interfaces, self::SETTINGS_IFACE_POS);
foreach ($Sinterfaces as $interface)
@@ -237,6 +245,7 @@ class Autoloader
}
}
}
}
$modulesTraitsNames = Config::getInstance()->getConfig()[self::SETTINGS_SECTION][self::SETTINGS_TRAIT_POS];
foreach($modulesTraitsNames as $traitsName)
{
@@ -251,6 +260,8 @@ class Autoloader
);
}
}
if(is_array($traits))
{
asort($traits);
$Straits = self::sortOrderModules($traits, self::SETTINGS_TRAIT_POS);
foreach($Straits as $trait)
@@ -261,6 +272,7 @@ class Autoloader
}
}
}
}
$modulesClassNames = Config::getInstance()->getConfig()[self::SETTINGS_SECTION][self::SETTINGS_CLASS_POS];
foreach($modulesClassNames as $className)
{
@@ -275,6 +287,8 @@ class Autoloader
);
}
}
if(is_array($modules))
{
asort($modules);
$Smodules = self::sortOrderModules($modules, self::SETTINGS_CLASS_POS);
foreach($Smodules as $smodule)
@@ -286,4 +300,39 @@ class Autoloader
}
}
}
$modulesPluginsNames = Config::getInstance()->getConfig()[self::SETTINGS_SECTION][self::SETTINGS_CLASS_POS];
$pluginNames = Config::getInstance()->getConfig()[self::SETTINGS_SECTION][self::SETTINGS_CLASS_PLUGIN_POS];
foreach($modulesPluginsNames as $pluginsName)
{
$iterator = self::folderContent(__DIR__ . Config::getInstance()->getConfig()[View::NIBIRU_SETTINGS][self::PLUGINS_FOLDER], $pluginsName );
foreach($pluginNames as $pluginName)
{
foreach ($iterator as $item)
{
if(strstr($item->getFilename(), $pluginName))
{
if ($item->getFileName() != self::MY_FILE_NAME && $item->getFileName() != "." && $item->getFileName() != ".." && strstr($item->getFileName(), self::PHP_FILE_EXTENSION)) {
$plugins[] = array(
'nfilename' => str_replace('.php', '', $item->getFileName()),
'filepathname' => $item->getPath() . '/' . $item->getFileName()
);
}
}
}
}
if(is_array($plugins))
{
asort($plugins);
$Splugins = self::sortOrderModules($plugins, self::SETTINGS_CLASS_PLUGIN_POS);
foreach($Splugins as $plugin)
{
if(!in_array($plugin['filepathname'], self::$_filesInFoler))
{
self::$_filesInFoler[] = $plugin['filepathname'];
}
}
}
}
}
}