Version 0.9.5 beta - update for the autoloading and a bugfix for the registry, also the dispatcher checks for the file before loading now.

This commit is contained in:
Stephan Kasdorf
2020-01-06 11:32:33 +01:00
parent 18344ebb8f
commit 12288f52df
3 changed files with 47 additions and 29 deletions

View File

@@ -72,6 +72,8 @@ class Autoloader
{ {
(bool) $skip = false; (bool) $skip = false;
(array) $normal = array(); (array) $normal = array();
(array) $first = array();
(array) $sorted = array();
if($section == self::SETTINGS_CLASS_POS) if($section == self::SETTINGS_CLASS_POS)
{ {
$moduleSortOrder = Config::getInstance()->getConfig()[self::SETTINGS_SECTION][self::SETTINGS_CLASS_POS]; $moduleSortOrder = Config::getInstance()->getConfig()[self::SETTINGS_SECTION][self::SETTINGS_CLASS_POS];
@@ -109,7 +111,7 @@ class Autoloader
$skip = false; $skip = false;
} }
} }
if(array_key_exists(0, $first)) if(is_array($first) && array_key_exists(0, $first))
{ {
$sorted = array(); $sorted = array();
foreach($moduleSortOrder as $item) foreach($moduleSortOrder as $item)
@@ -170,14 +172,21 @@ class Autoloader
* @param string $moduleName * @param string $moduleName
* @return \RecursiveIteratorIterator * @return \RecursiveIteratorIterator
*/ */
private static function folderContent( string $folderPath, string $moduleName = '' ): \RecursiveIteratorIterator private static function folderContent( string $folderPath, string $moduleName = '' ): ?\RecursiveIteratorIterator
{ {
if(strstr($folderPath, self::REGEX_PATH_NAME) && $moduleName!="") if(strstr($folderPath, self::REGEX_PATH_NAME) && $moduleName!="")
{ {
$folderPath = str_replace(self::REGEX_PATH_NAME, $moduleName, $folderPath); $folderPath = str_replace(self::REGEX_PATH_NAME, $moduleName, $folderPath);
} }
if(is_dir($folderPath))
{
return new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator( $folderPath )); return new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator( $folderPath ));
} }
else
{
return null;
}
}
/** /**
* @param array $filesInFoler * @param array $filesInFoler
@@ -223,6 +232,8 @@ class Autoloader
foreach($moduleInterfaceNames as $interfaceName) foreach($moduleInterfaceNames as $interfaceName)
{ {
$iterator = self::folderContent(__DIR__ . Config::getInstance()->getConfig()[View::NIBIRU_SETTINGS][self::INTERFACE_FOLDER], $interfaceName); $iterator = self::folderContent(__DIR__ . Config::getInstance()->getConfig()[View::NIBIRU_SETTINGS][self::INTERFACE_FOLDER], $interfaceName);
if(sizeof($iterator)>0)
{
foreach ($iterator as $item) foreach ($iterator as $item)
{ {
if($item->getFileName() != self::MY_FILE_NAME && $item->getFileName() != "." && $item->getFileName() != ".." && strstr($item->getFileName(), self::PHP_FILE_EXTENSION)) if($item->getFileName() != self::MY_FILE_NAME && $item->getFileName() != "." && $item->getFileName() != ".." && strstr($item->getFileName(), self::PHP_FILE_EXTENSION))
@@ -233,6 +244,7 @@ class Autoloader
); );
} }
} }
}
if(is_array($interfaces)) if(is_array($interfaces))
{ {
asort($interfaces); asort($interfaces);
@@ -302,7 +314,7 @@ class Autoloader
} }
$modulesPluginsNames = Config::getInstance()->getConfig()[self::SETTINGS_SECTION][self::SETTINGS_CLASS_POS]; $modulesPluginsNames = Config::getInstance()->getConfig()[self::SETTINGS_SECTION][self::SETTINGS_CLASS_POS];
$pluginNames = Config::getInstance()->getConfig()[self::SETTINGS_SECTION][self::SETTINGS_CLASS_PLUGIN_POS]; $pluginNames = Config::getInstance()->getConfig()[self::SETTINGS_SECTION][self::SETTINGS_CLASS_PLUGIN_POS];
$plugins = [];
foreach($modulesPluginsNames as $pluginsName) foreach($modulesPluginsNames as $pluginsName)
{ {
$iterator = self::folderContent(__DIR__ . Config::getInstance()->getConfig()[View::NIBIRU_SETTINGS][self::PLUGINS_FOLDER], $pluginsName ); $iterator = self::folderContent(__DIR__ . Config::getInstance()->getConfig()[View::NIBIRU_SETTINGS][self::PLUGINS_FOLDER], $pluginsName );

View File

@@ -39,6 +39,8 @@ final class Dispatcher
Router::getInstance(); Router::getInstance();
Router::getInstance()->route(); Router::getInstance()->route();
Autoloader::getInstance()->runRequireOnce(); Autoloader::getInstance()->runRequireOnce();
if(is_file(__DIR__ . '/../../application/controller/' . Router::getInstance()->tplName() . 'Controller.php'))
{
require_once __DIR__ . '/../../application/controller/' . Router::getInstance()->tplName() . 'Controller.php'; require_once __DIR__ . '/../../application/controller/' . Router::getInstance()->tplName() . 'Controller.php';
$class = "Nibiru\\".\Nibiru\Router::getInstance()->tplName()."Controller"; $class = "Nibiru\\".\Nibiru\Router::getInstance()->tplName()."Controller";
$controller = new $class(); $controller = new $class();
@@ -59,3 +61,4 @@ final class Dispatcher
Display::getInstance()->display(); Display::getInstance()->display();
} }
} }
}

View File

@@ -70,6 +70,8 @@ final class Registry
{ {
$module = new \stdClass(); $module = new \stdClass();
$module_settings = parse_ini_file($settings->getPathName(), true); $module_settings = parse_ini_file($settings->getPathName(), true);
if(array_key_exists(strtoupper($this->getModuleName()), $module_settings))
{
foreach ($module_settings[strtoupper($this->getModuleName())] as $key=>$value) foreach ($module_settings[strtoupper($this->getModuleName())] as $key=>$value)
{ {
$module->$key = $value; $module->$key = $value;
@@ -78,6 +80,7 @@ final class Registry
} }
} }
} }
}
/** /**
* @return string * @return string