X-Git-Url: https://git.mxchange.org/?p=shipsimu.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fclass_BaseFrameworkSystem.php;h=96338267adb4d54441d2007c7bff657c441b6610;hp=de854be0232e2d440c09d9784daf581896c765ec;hb=db61178ebaf96aa11cc16f18af4fedaaf32fe2de;hpb=6019ae86707cb6decaddc63f191e3ef6eb5e4d44 diff --git a/inc/classes/main/class_BaseFrameworkSystem.php b/inc/classes/main/class_BaseFrameworkSystem.php index de854be..9633826 100644 --- a/inc/classes/main/class_BaseFrameworkSystem.php +++ b/inc/classes/main/class_BaseFrameworkSystem.php @@ -68,6 +68,11 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { */ private $templateInstance = null; + /** + * Database result instance + */ + private $resultInstance = null; + /** * The real class name */ @@ -153,6 +158,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { const EXCEPTION_FILE_NOT_FOUND = 0x036; const EXCEPTION_ASSERTION_FAILED = 0x037; const EXCEPTION_FILE_CANNOT_BE_READ = 0x038; + const EXCEPTION_DATABASE_UPDATED_NOT_ALLOWED = 0x039; /** * In the super constructor these system classes shall be ignored or else @@ -201,6 +207,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { * Destructor reached... * * @return void + * @todo This is old code. Do we still need this old lost code? */ public function __destruct() { // Is this object already destroyed? @@ -211,7 +218,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { $this->resetUniqueID(); } elseif ((defined('DEBUG_DESTRUCTOR')) && (is_object($this->getDebugInstance()))) { // Already destructed object - $this->getDebugInstance()->output(sprintf("[%s:] Das Objekt %s wurde bereits zerstört.", + $this->debugOutput(sprintf("[%s:] The object %s is already destroyed.", __CLASS__, $this->__toString() )); } @@ -278,7 +285,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { } // Output stub message - $this->getDebugInstance()->output(sprintf("[%s->%s] Stub! Args: %s", + $this->debugOutput(sprintf("[%s->%s] Stub! Args: %s", $this->__toString(), $methodName, $argsString @@ -320,6 +327,26 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { } } + /** + * Setter for database result instance + * + * @param $resultInstance An instance of a database result class + * @return void + * @todo SearchableResult and UpdateableResult shall have a super interface to use here + */ + protected final function setResultInstance (SearchableResult $resultInstance) { + $this->resultInstance = $resultInstance; + } + + /** + * Getter for database result instance + * + * @return $resultInstance An instance of a database result class + */ + public final function getResultInstance () { + return $this->resultInstance; + } + /** * Setter for template engine instances * @@ -453,11 +480,16 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { * @return $dbInstance The database layer instance */ public final function getDatabaseInstance () { + // Default is invalid db instance + $dbInstance = null; + + // Is the registry there and initialized? if ((class_exists('Registry')) && (Registry::isInitialized() === true)) { - return Registry::getRegistry()->getInstance('dbInstance'); - } else { - return null; - } + $dbInstance = Registry::getRegistry()->getInstance('dbInstance'); + } // END - if + + // Return instance + return $dbInstance; } /** @@ -694,11 +726,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { * @return $objectDescription The description of this simulation part */ public final function getObjectDescription () { - if (isset($this->objectDescription)) { - return $this->objectDescription; - } else { - return null; - } + return $this->objectDescription; } /** @@ -723,7 +751,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { /** * Compare if both simulation part description and class name matches - * (shall be enougth) + * (shall be enough) * * @param $itemInstance An object instance to an other class * @return boolean The result of comparing class name simulation part description @@ -909,17 +937,17 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { * * @param $appInstance An application helper instance or * null if we shall use the default - * @return $tplEngine The template engine instance + * @return $templateInstance The template engine instance * @throws NullPointerException If the template engine could not * be initialized - * @throws UnsupportedTemplateEngineException If $tplEngine is an + * @throws UnsupportedTemplateEngineException If $templateInstance is an * unsupported template engine * @throws MissingLanguageHandlerException If the language sub-system * is not yet initialized * @throws NullPointerException If the discovered application * instance is still null */ - protected function prepareTemplateEngine (BaseFrameworkSystem $appInstance=null) { + protected function prepareTemplateInstance (BaseFrameworkSystem $appInstance=null) { // Is the application instance set? if (is_null($appInstance)) { // Get the current instance @@ -929,8 +957,8 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { if (is_null($appInstance)) { // Thrown an exception throw new NullPointerException($this, self::EXCEPTION_IS_NULL_POINTER); - } - } + } // END - if + } // END - if // Generate FQFN for all application templates $fqfn = sprintf("%s%s/%s/%s", @@ -950,10 +978,10 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { } // Initialize the template engine - $tplEngine = ObjectFactory::createObjectByConfiguredName('template_class', array($fqfn, $appInstance->getLanguageInstance(), $appInstance->getFileIoInstance())); + $templateInstance = ObjectFactory::createObjectByConfiguredName('template_class', array($fqfn, $appInstance->getLanguageInstance(), $appInstance->getFileIoInstance())); // Return the prepared instance - return $tplEngine; + return $templateInstance; } /** @@ -962,13 +990,20 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { * @return void */ public final function debugInstance () { + // Restore the error handler to avoid trouble with missing array elements or undeclared variables + restore_error_handler(); + // Generate the output $content = sprintf("
%s", - trim(print_r($this, true)) + trim( + htmlentities( + print_r($this, true) + ) + ) ); // Output it - ApplicationEntryPoint::app_die(sprintf("%s debug output: