X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fclass_BaseFrameworkSystem.php;h=e1f0d55fb45eef10e1124b9789d621785dbf9473;hp=25e0986f07c910583695e597dd468e2c15b3be90;hb=fbd656cb3ca44cd60893ad06983c43d908ad1e29;hpb=9f6bf1d193eca4ea47e4a126ed5d1f2f8aac03a7 diff --git a/inc/classes/main/class_BaseFrameworkSystem.php b/inc/classes/main/class_BaseFrameworkSystem.php index 25e0986f..e1f0d55f 100644 --- a/inc/classes/main/class_BaseFrameworkSystem.php +++ b/inc/classes/main/class_BaseFrameworkSystem.php @@ -5,7 +5,7 @@ * * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2014 Core Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 Core Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.shipsimu.org * @@ -148,6 +148,11 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { */ private $sourceInstance = NULL; + /** + * An instance of a UrlSource class + */ + private $urlSourceInstance = NULL; + /** * An instance of a InputStream class */ @@ -1033,7 +1038,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { * @param $protocolInstance An instance of an HandleableProtocol * @return void */ - public final function setProtocolInstance (HandleableProtocol $protocolInstance = NULL) { + public final function setProtocolInstance (HandleableProtocol $protocolInstance) { $this->protocolInstance = $protocolInstance; } @@ -1129,7 +1134,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { /** * Setter for a Sourceable instance * - * @param $sourceInstance The Sourceable instance + * @param $sourceInstance An instance of a Sourceable class * @return void */ protected final function setSourceInstance (Sourceable $sourceInstance) { @@ -1139,12 +1144,31 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { /** * Getter for a Sourceable instance * - * @return $sourceInstance The Sourceable instance + * @return $sourceInstance An instance of a Sourceable class */ protected final function getSourceInstance () { return $this->sourceInstance; } + /** + * Setter for a UrlSource instance + * + * @param $sourceInstance An instance of a UrlSource class + * @return void + */ + protected final function setUrlSourceInstance (UrlSource $urlSourceInstance) { + $this->urlSourceInstance = $urlSourceInstance; + } + + /** + * Getter for a UrlSource instance + * + * @return $urlSourceInstance An instance of a UrlSource class + */ + protected final function getUrlSourceInstance () { + return $this->urlSourceInstance; + } + /** * Getter for a InputStream instance * @@ -1298,6 +1322,22 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { return $this->pointerInstance; } + /** + * Unsets pointer instance which triggers a call of __destruct() if the + * instance is still there. This is surely not fatal on already "closed" + * file pointer instances. + * + * I don't want to mess around with above setter by giving it a default + * value NULL as setter should always explicitly only set (existing) object + * instances and NULL is NULL. + * + * @return void + */ + protected final function unsetPointerInstance () { + // Simply it to NULL + $this->pointerInstance = NULL; + } + /** * Setter for Indexable instance * @@ -1469,7 +1509,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { } /** - * Prepare the template engine (WebTemplateEngine by default) for a given + * Prepare the template engine (HtmlTemplateEngine by default) for a given * application helper instance (ApplicationHelper by default). * * @param $applicationInstance An application helper instance or @@ -1492,7 +1532,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { } // END - if // Initialize the template engine - $templateInstance = ObjectFactory::createObjectByConfiguredName('web_template_class'); + $templateInstance = ObjectFactory::createObjectByConfiguredName('html_template_class'); // Return the prepared instance return $templateInstance; @@ -1630,7 +1670,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { // Try it try { // Get a debugger instance - $debugInstance = DebugMiddleware::createDebugMiddleware(FrameworkConfiguration::getSelfInstance()->getConfigEntry('debug_class')); + $debugInstance = DebugMiddleware::createDebugMiddleware(FrameworkConfiguration::getSelfInstance()->getConfigEntry('debug_' . $this->getResponseTypeFromSystem() . '_class')); } catch (NullPointerException $e) { // Didn't work, no instance there exit('Cannot create debugInstance! Exception=' . $e->__toString() . ', message=' . $e->getMessage()); @@ -1870,7 +1910,8 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { // Do we have an entry? if ($this->getResultInstance()->valid() === FALSE) { - throw new InvalidDatabaseResultException(array($this, $this->getResultInstance()), DatabaseResult::EXCEPTION_INVALID_DATABASE_RESULT); + // @TODO Move the constant to e.g. BaseDatabaseResult when there is a non-cached database result available + throw new InvalidDatabaseResultException(array($this, $this->getResultInstance()), CachedDatabaseResult::EXCEPTION_INVALID_DATABASE_RESULT); } // END - if // Get next entry @@ -2188,8 +2229,11 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { // Is 'HTTP_HOST' set? if (isset($_SERVER['HTTP_HOST'])) { - // Then it is a HTTP response/request - $responseType = 'http'; + /* + * Then it is a HTML response/request as RSS and so on may be + * transfered over HTTP as well. + */ + $responseType = 'html'; } // END - if // Return it @@ -2908,6 +2952,28 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { return $isValid; } + /** + * Initializes the web output instance + * + * @return void + */ + protected function initWebOutputInstance () { + // Get application instance + $applicationInstance = Registry::getRegistry()->getInstance('app'); + + // Is this a response instance? + if ($this instanceof Responseable) { + // Then set it in application instance + $applicationInstance->setResponseInstance($this); + } // END - if + + // Init web output instance + $outputInstance = ObjectFactory::createObjectByConfiguredName('output_class', array($applicationInstance)); + + // Set it locally + $this->setWebOutputInstance($outputInstance); + } + /** * Translates boolean TRUE to 'Y' and FALSE to 'N' *