X-Git-Url: https://git.mxchange.org/?p=shipsimu.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fclass_BaseFrameworkSystem.php;h=08abd1f8001ec6046bd603f487a638f08ea8fd75;hp=ea3201f20a0cfbcb0c5d5555504e607d7d737696;hb=d0b833b090c7cb50e075e4b08d052d415780faa0;hpb=b3e47fb693fb8d40868158b0192b3392b309d97a diff --git a/inc/classes/main/class_BaseFrameworkSystem.php b/inc/classes/main/class_BaseFrameworkSystem.php index ea3201f..08abd1f 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, this is free software + * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software * @license GNU GPL 3.0 or any newer version * @link http://www.ship-simu.org * @@ -63,6 +63,16 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { */ private $resolverInstance = null; + /** + * Template engine instance + */ + private $templateInstance = null; + + /** + * Database result instance + */ + private $resultInstance = null; + /** * The real class name */ @@ -141,19 +151,22 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { const EXCEPTION_MISSING_FILE_IO_HANDLER = 0x02f; const EXCEPTION_MISSING_ELEMENT = 0x030; const EXCEPTION_HEADERS_ALREADY_SENT = 0x031; - const EXCEPTION_DEFAUL_CONTROLLER_GONE = 0x032; + const EXCEPTION_DEFAULT_CONTROLLER_GONE = 0x032; const EXCEPTION_CLASS_NOT_FOUND = 0x033; const EXCEPTION_REQUIRED_INTERFACE_MISSING = 0x034; const EXCEPTION_FATAL_ERROR = 0x035; const EXCEPTION_FILE_NOT_FOUND = 0x036; + const EXCEPTION_ASSERTION_FAILED = 0x037; + const EXCEPTION_FILE_CANNOT_BE_READ = 0x038; /** * In the super constructor these system classes shall be ignored or else * we would get an endless calling loop. * - *--------------------------------------------------------------------* - * ATTENTION: IF YOU REMOVE ONE OF THEM YOU WILL SHOOT YOUR SERVER!!! * - *--------------------------------------------------------------------* + *---------------------------------------------------------------------* + * ATTENTION: IF YOU REMOVE ONE OF THEM YOU WILL RUN YOUR SERVER IN AN * + * ENDLESS LOOP !!! * + *---------------------------------------------------------------------* */ private $systemClasses = array( "DebugMiddleware", // Debug middleware output sub-system @@ -193,24 +206,18 @@ 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? - if ($this->__toString() != "DestructedObject") { - // Debug message - if ((defined('DEBUG_DESTRUCTOR')) && (is_object($this->getDebugInstance()))) { - $this->getDebugInstance()->output(sprintf("[%s:] Das Objekt %s wird zerstört.", - __CLASS__, $this->__toString() - )); - } // END - if - + if ($this->__toString() != 'DestructedObject') { // Destroy all informations about this class but keep some text about it alive - $this->setObjectDescription(sprintf("Entferntes Objekt %s", $this->__toString())); - $this->setRealClass("DestructedObject"); + $this->setObjectDescription(sprintf("Removed object %s", $this->__toString())); + $this->setRealClass('DestructedObject'); $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->getDebugInstance()->output(sprintf("[%s:] The object %s is already destroyed.", __CLASS__, $this->__toString() )); } @@ -255,9 +262,12 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { } elseif (is_null($arg)) { // Null $argsString .= "(null)"; + } elseif (is_resource($arg)) { + // Resource + $argsString .= "(resource)"; } else { // Unknown type (please report!) - $argsString .= $arg."(unknown!)"; + $argsString .= $arg."(unknown!)"; } // Add comma @@ -265,14 +275,16 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { } // Remove last comma - if (substr($argsString, -2, 1) === ",") $argsString = substr($argsString, 0, -2); + if (substr($argsString, -2, 1) === ",") { + $argsString = substr($argsString, 0, -2); + } // END - if } else { // Invalid arguments! $argsString = sprintf("!INVALID:%s!", $args); } // Output stub message - $this->getDebugInstance()->output(sprintf("[%s::%s] Stub! Args: %s", + $this->getDebugInstance()->output(sprintf("[%s->%s] Stub! Args: %s", $this->__toString(), $methodName, $argsString @@ -307,13 +319,52 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { ))); // Initialization done! :D - Registry::isInitialized("OK"); - } elseif ($this->__toString() == "DebugMiddleware") { + Registry::isInitialized('OK'); + } elseif ($this->__toString() == 'DebugMiddleware') { // Set configuration instance $this->setConfigInstance(FrameworkConfiguration::createFrameworkConfiguration()); } } + /** + * 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 + * + * @param $templateInstance An instance of a template engine class + * @return void + */ + protected final function setTemplateInstance (CompileableTemplate $templateInstance) { + $this->templateInstance = $templateInstance; + } + + /** + * Getter for template engine instances + * + * @return $templateInstance An instance of a template engine class + */ + protected final function getTemplateInstance () { + return $this->templateInstance; + } + /** * Setter for search instance * @@ -368,7 +419,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { * * @return $cfgInstance Configuration instance */ - protected final function getConfigInstance () { + public final function getConfigInstance () { $cfgInstance = Registry::getRegistry()->getInstance('config'); return $cfgInstance; } @@ -818,10 +869,10 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { * The left part of the ID shall always be a valid class name and the * right part an ID number. * - * @return $pfn The file name with a prepended path name - * @throws NoArrayCreatedException If explode() fails to create an array + * @return $pfn The file name with a prepended path name + * @throws NoArrayCreatedException If explode() fails to create an array * @throws InvalidArrayCountException If the array contains less or - * more than two elements + * more than two elements */ public final function getPathFileNameFromObject () { // Get the main object's unique ID. We use this as a path/filename combination @@ -833,10 +884,10 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { // Are there two elements? Index 0 is the path, 1 the file name + global extension if (!is_array($pathFile)) { // No array found - throw new NoArrayCreatedException(array($this, "pathFile"), self::EXCEPTION_ARRAY_EXPECTED); + throw new NoArrayCreatedException(array($this, 'pathFile'), self::EXCEPTION_ARRAY_EXPECTED); } elseif (count($pathFile) != 2) { // Invalid ID returned! - throw new InvalidArrayCountException(array($this, "pathFile", count($pathFile), 2), self::EXCEPTION_ARRAY_HAS_INVALID_COUNT); + throw new InvalidArrayCountException(array($this, 'pathFile', count($pathFile), 2), self::EXCEPTION_ARRAY_HAS_INVALID_COUNT); } // Auto-append missing trailing slash @@ -879,7 +930,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { } /** - * Prepare the template engine (TemplateEngine by default) for a given + * Prepare the template engine (WebTemplateEngine by default) for a given * application helper instance (ApplicationHelper by default). * * @param $appInstance An application helper instance or @@ -961,9 +1012,9 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { $backtrace = debug_backtrace(); // Generate the class::method string - $methodName = "UnknownClass::unknownMethod"; + $methodName = "UnknownClass->unknownMethod"; if ((isset($backtrace[1]['class'])) && (isset($backtrace[1]['function']))) { - $methodName = $backtrace[1]['class']."::".$backtrace[1]['function']; + $methodName = $backtrace[1]['class']."->".$backtrace[1]['function']; } // Construct the full message @@ -992,7 +1043,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { * * @return void */ - public function debugBacktrace () { + public function debugBackTrace () { // Sorry, there is no other way getting this nice backtrace print "
\n";
 		debug_print_backtrace();
@@ -1084,6 +1135,30 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
 		// Return the code
 		return $markedCode;
 	}
+
+	/**
+	 * Filter a given timestamp to make it look more beatifull for web-based
+	 * front-ends. If null is given a message id null_timestamp will be
+	 * resolved and returned.
+	 *
+	 * @param	$timestamp	Timestamp to prepare (filter) for display
+	 * @return	$readable	A readable timestamp
+	 */
+	public function doFilterFormatTimestamp ($timestamp) {
+		// Default value to return
+		$readable = "???";
+
+		// Is the timestamp null?
+		if (is_null($timestamp)) {
+			// Get a message string
+			$readable = $this->getLanguageInstance()->getMessage('null_timestamp');
+		} else {
+			$this->partialStub("Do further analysis on timestamp {$timestamp}.");
+		}
+
+		// Return the stamp
+		return $readable;
+	}
 }
 
 // [EOF]