diff --git a/Autoloader.php b/Autoloader.php index c4fe3a4c7..fdf27a4c1 100644 --- a/Autoloader.php +++ b/Autoloader.php @@ -39,6 +39,8 @@ class Autoloader * * @return void * + * @throws + * * @since 1.0.0 * @author Dennis Eichhorn */ @@ -47,6 +49,8 @@ class Autoloader if (($class = self::exists($class)) !== false) { /** @noinspection PhpIncludeInspection */ include __DIR__ . '/../' . $class . '.php'; + } else { + throw new \Exception(); } } diff --git a/DataStorage/Database/DataMapperAbstract.php b/DataStorage/Database/DataMapperAbstract.php index 85f2c16a5..580392b2b 100644 --- a/DataStorage/Database/DataMapperAbstract.php +++ b/DataStorage/Database/DataMapperAbstract.php @@ -586,11 +586,11 @@ abstract class DataMapperAbstract implements DataMapperInterface $sth = $this->db->con->prepare($query->toSql()); $sth->execute(); - $results = $sth->fetch(\PDO::FETCH_ASSOC); + $results = $sth->fetchAll(\PDO::FETCH_ASSOC); /* todo: if limit get's used this has to call populateIterable */ - return $this->populate(is_bool($results) ? [] : $results); + return $this->populateIterable(is_bool($results) ? [] : $results); } diff --git a/Module/ModuleAbstract.php b/Module/ModuleAbstract.php index 4c723fef0..275d4a78a 100644 --- a/Module/ModuleAbstract.php +++ b/Module/ModuleAbstract.php @@ -55,6 +55,22 @@ abstract class ModuleAbstract */ const MODULE_NAME = ''; + /** + * Module path. + * + * @var string + * @since 1.0.0 + */ + const MODULE_PATH = __DIR__; + + /** + * Module version. + * + * @var string + * @since 1.0.0 + */ + const MODULE_VERSION = '1.0.0'; + /** * Localization files. * diff --git a/Module/ModuleFactory.php b/Module/ModuleFactory.php index 167e77cb3..b382339e6 100644 --- a/Module/ModuleFactory.php +++ b/Module/ModuleFactory.php @@ -16,6 +16,7 @@ namespace phpOMS\Module; use phpOMS\ApplicationAbstract; +use phpOMS\Module\NullModule; /** @@ -76,29 +77,33 @@ class ModuleFactory public static function getInstance(string $module, ApplicationAbstract $app) : ModuleAbstract { if (!isset(self::$loaded[$module])) { - $class = '\\Modules\\' . $module . '\\Controller'; + try { + $class = '\\Modules\\' . $module . '\\Controller'; - /** - * @var ModuleAbstract $obj - */ - $obj = new $class($app); - self::$loaded[$module] = $obj; + /** + * @var ModuleAbstract $obj + */ + $obj = new $class($app); + self::$loaded[$module] = $obj; - /** Install providing for */ - foreach ($obj->getProviding() as $providing) { - if (isset(self::$loaded[$providing])) { - self::$loaded[$providing]->addReceiving($obj->getName()); - } else { - self::$providing[$providing][] = $obj->getName(); + /** Install providing for */ + foreach ($obj->getProviding() as $providing) { + if (isset(self::$loaded[$providing])) { + self::$loaded[$providing]->addReceiving($obj->getName()); + } else { + self::$providing[$providing][] = $obj->getName(); + } } - } - /** Check if I get provided with */ - $name = $obj->getName(); - if (isset(self::$providing[$name])) { - foreach (self::$providing[$name] as $providing) { - self::$loaded[$name]->addReceiving($providing); + /** Check if I get provided with */ + $name = $obj->getName(); + if (isset(self::$providing[$name])) { + foreach (self::$providing[$name] as $providing) { + self::$loaded[$name]->addReceiving($providing); + } } + } catch(\Exception $e) { + self::$loaded[$module] = new NullModule($app); } } diff --git a/Module/NullModule.php b/Module/NullModule.php new file mode 100644 index 000000000..b98c416a4 --- /dev/null +++ b/Module/NullModule.php @@ -0,0 +1,32 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace phpOMS\Module; + + +/** + * Module abstraction class. + * + * @category Framework + * @package phpOMS\Module + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class NullModule extends ModuleAbstract +{ +}