X-Git-Url: https://git.mxchange.org/?p=shipsimu.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fclass_BaseFrameworkSystem.php;h=ea3201f20a0cfbcb0c5d5555504e607d7d737696;hp=b725a85658143712d8edd560802c46ff2aad221b;hb=b3e47fb693fb8d40868158b0192b3392b309d97a;hpb=58e0fb00204ed031ec9d312b0fa0f6f693711aae
diff --git a/inc/classes/main/class_BaseFrameworkSystem.php b/inc/classes/main/class_BaseFrameworkSystem.php
index b725a85..ea3201f 100644
--- a/inc/classes/main/class_BaseFrameworkSystem.php
+++ b/inc/classes/main/class_BaseFrameworkSystem.php
@@ -33,6 +33,11 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
*/
private static $langInstance = null;
+ /**
+ * Debug instance
+ */
+ private static $debugInstance = null;
+
/**
* Instance of a request class
*/
@@ -48,6 +53,16 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
*/
private $searchInstance = null;
+ /**
+ * The file I/O instance for the template loader
+ */
+ private $fileIoInstance = null;
+
+ /**
+ * Resolver instance
+ */
+ private $resolverInstance = null;
+
/**
* The real class name
*/
@@ -73,11 +88,6 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
*/
private $decimals = ","; // German
- /**
- * The file I/O instance for the template loader
- */
- private $fileIoInstance = null;
-
/***********************
* Exception codes.... *
***********************/
@@ -130,14 +140,12 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
const EXCEPTION_MISSING_LANGUAGE_HANDLER = 0x02e;
const EXCEPTION_MISSING_FILE_IO_HANDLER = 0x02f;
const EXCEPTION_MISSING_ELEMENT = 0x030;
- const EXCEPTION_INVALID_COMMAND = 0x031;
- const EXCEPTION_INVALID_CONTROLLER = 0x032;
- const EXCEPTION_HEADERS_ALREADY_SENT = 0x033;
- const EXCEPTION_DEFAUL_CONTROLLER_GONE = 0x034;
- const EXCEPTION_CLASS_NOT_FOUND = 0x035;
- const EXCEPTION_REQUIRED_INTERFACE_MISSING = 0x036;
- const EXCEPTION_FATAL_ERROR = 0x037;
- const EXCEPTION_FILE_NOT_FOUND = 0x038;
+ const EXCEPTION_HEADERS_ALREADY_SENT = 0x031;
+ const EXCEPTION_DEFAUL_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;
/**
* In the super constructor these system classes shall be ignored or else
@@ -168,16 +176,17 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
/**
* Private super constructor
*
+ * @param $className Name of the class
* @return void
*/
- protected function __construct ($class) {
+ protected function __construct ($className) {
// Set real class
- $this->setRealClass($class);
+ $this->setRealClass($className);
// Initialize the class if the registry is there
if ((class_exists('Registry')) && (Registry::isInitialized() === false)) {
$this->initInstance();
- }
+ } // END - if
}
/**
@@ -190,10 +199,10 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
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.
\n",
+ $this->getDebugInstance()->output(sprintf("[%s:] Das Objekt %s wird zerstört.",
__CLASS__, $this->__toString()
));
- }
+ } // END - if
// Destroy all informations about this class but keep some text about it alive
$this->setObjectDescription(sprintf("Entferntes Objekt %s", $this->__toString()));
@@ -201,7 +210,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.
\n",
+ $this->getDebugInstance()->output(sprintf("[%s:] Das Objekt %s wurde bereits zerstört.",
__CLASS__, $this->__toString()
));
}
@@ -262,6 +271,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
$argsString = sprintf("!INVALID:%s!", $args);
}
+ // Output stub message
$this->getDebugInstance()->output(sprintf("[%s::%s] Stub! Args: %s",
$this->__toString(),
$methodName,
@@ -304,6 +314,44 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
}
}
+ /**
+ * Setter for search instance
+ *
+ * @param $searchInstance Searchable criteria instance
+ * @return void
+ */
+ public final function setSearchInstance (LocalSearchCriteria $searchInstance) {
+ $this->searchInstance = $searchInstance;
+ }
+
+ /**
+ * Getter for search instance
+ *
+ * @return $searchInstance Searchable criteria instance
+ */
+ public final function getSearchInstance () {
+ return $this->searchInstance;
+ }
+
+ /**
+ * Setter for resolver instance
+ *
+ * @param $resolverInstance Instance of a command resolver class
+ * @return void
+ */
+ public final function setResolverInstance (Resolver $resolverInstance) {
+ $this->resolverInstance = $resolverInstance;
+ }
+
+ /**
+ * Getter for resolver instance
+ *
+ * @return $resolverInstance Instance of a command resolver class
+ */
+ public final function getResolverInstance () {
+ return $this->resolverInstance;
+ }
+
/**
* Setter for language instance
*
@@ -318,29 +366,30 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
/**
* Getter for configuration instance
*
- * @return $cfhInstance - Configuration instance
+ * @return $cfgInstance Configuration instance
*/
protected final function getConfigInstance () {
- return Registry::getRegistry()->getInstance('config');
+ $cfgInstance = Registry::getRegistry()->getInstance('config');
+ return $cfgInstance;
}
/**
* Setter for debug instance
*
- * @param $debugInstance The instance for debug output class
+ * @param $debugInstance The instance for debug output class
* @return void
*/
public final function setDebugInstance (DebugMiddleware $debugInstance) {
- Registry::getRegistry()->addInstance('debug', $debugInstance);
+ self::$debugInstance = $debugInstance;
}
/**
* Getter for debug instance
*
- * @return $debug - Instance to class DebugConsoleOutput or DebugWebOutput
+ * @return $debugInstance Instance to class DebugConsoleOutput or DebugWebOutput
*/
public final function getDebugInstance () {
- return Registry::getRegistry()->getInstance('debug');
+ return self::$debugInstance;
}
/**
@@ -640,10 +689,10 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
/**
* Validate if given object is the same as current
*
- * @param $object An object instance for comparison with this class
+ * @param $object An object instance for comparison with this class
* @return boolean The result of comparing both's unique ID
*/
- public final function equals ($object) {
+ public final function equals (FrameworkInterface $object) {
return ($this->getUniqueID() == $object->getUniqueID());
}
@@ -651,8 +700,8 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
* Compare if both simulation part description and class name matches
* (shall be enougth)
*
- * @param $itemInstance An object instance to an other class
- * @return boolean The result of comparing class name simulation part description
+ * @param $itemInstance An object instance to an other class
+ * @return boolean The result of comparing class name simulation part description
*/
public function itemMatches ($itemInstance) {
return (
@@ -667,11 +716,11 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
/**
* Compare class name of this and given class name
*
- * @param $class The class name as string from the other class
+ * @param $className The class name as string from the other class
* @return boolean The result of comparing both class names
*/
- public final function isClass ($class) {
- return ($this->__toString() == $class);
+ public final function isClass ($className) {
+ return ($this->__toString() == $className);
}
/**
@@ -938,6 +987,46 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
}
}
+ /**
+ * Outputs a debug backtrace and stops further script execution
+ *
+ * @return void
+ */
+ public function debugBacktrace () {
+ // Sorry, there is no other way getting this nice backtrace
+ print "
\n"; + debug_print_backtrace(); + print ""; + exit; + } + + /** + * Outputs a debug message wether to debug instance (should be set!) or dies with or pints the message + * + * @param $message Message we shall send out... + * @param $doPrint Wether we shall print or die here which last is the default + * @return void + */ + public function debugOutput ($message, $doPrint = false) { + // Get debug instance + $debugInstance = $this->getDebugInstance(); + + // Is the debug instance there? + if (is_object($debugInstance)) { + // Use debug output handler + $debugInstance->output($message); + if (!$doPrint) die(); // Die here if not printed + } else { + // Put directly out + // DO NOT REWRITE THIS TO app_die() !!! + if ($doPrint) { + print($message); + } else { + die($message); + } + } + } + /** * Converts e.g. a command from URL to a valid class by keeping out bad characters * @@ -962,35 +1051,38 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { } /** - * Outputs a debug backtrace and stops further script execution - * - * @return void - */ - public function debugBacktrace () { - // Sorry, there is no other way getting this nice backtrace - print "
\n"; - debug_print_backtrace(); - print ""; - exit; - } - - /** - * Setter for search instance + * Marks up the code by adding e.g. line numbers * - * @param $searchInstance Searchable criteria instance - * @return void + * @param $phpCode Unmarked PHP code + * @return $markedCode Marked PHP code */ - public final function setSearchInstance (LocalSearchCriteria $searchInstance) { - $this->searchInstance = $searchInstance; - } + public function markupCode ($phpCode) { + // Get last error + $errorArray = error_get_last(); + + // Init the code with error message + $markedCode = ""; + if (is_array($errorArray)) { + // Get error infos + $markedCode = sprintf("