X-Git-Url: https://git.mxchange.org/?p=shipsimu.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fclass_BaseFrameworkSystem.php;h=75b851f85ef69b80fd3b5f8d88a652e65d8c1259;hp=8dbbdaa9ab71a2827fdaab8433143381fce5cb76;hb=b226bbefe6bc09bcd75432c3c3ba32bf7da45b71;hpb=0a4c7d2793ad13bfe4798f947ef39529f32b6567
diff --git a/inc/classes/main/class_BaseFrameworkSystem.php b/inc/classes/main/class_BaseFrameworkSystem.php
index 8dbbdaa..75b851f 100644
--- a/inc/classes/main/class_BaseFrameworkSystem.php
+++ b/inc/classes/main/class_BaseFrameworkSystem.php
@@ -149,6 +149,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
const EXCEPTION_INVALID_CONTROLLER = 0x032;
const EXCEPTION_HEADERS_ALREADY_SENT = 0x033;
const EXCEPTION_DEFAUL_CONTROLLER_GONE = 0x034;
+ const EXCEPTION_CLASS_NOT_FOUND = 0x035;
/**
* In the super constructor these system classes shall be ignored or else
@@ -218,8 +219,50 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
*/
public final function __call ($methodName, $args) {
// Implode all given arguments
- $argsString = implode("|", $args);
- if (empty($argsString)) $argsString = "NULL";
+ $argsString = "";
+ if (empty($args)) {
+ // No arguments
+ $argsString = "NULL";
+ } elseif (is_array($args)) {
+ // Some arguments are there
+ foreach ($args as $arg) {
+ // Check the type
+ if (is_bool($arg)) {
+ // Boolean!
+ if ($arg) $argsString .= "true(bool)"; else $argsString .= "false(bool)";
+ } elseif (is_int($arg)) {
+ // Integer
+ $argsString .= $arg."(int)";
+ } elseif (is_float($arg)) {
+ // Floating point
+ $argsString .= $arg."(float)";
+ } elseif ($arg instanceof BaseFramework) {
+ // Own object instance
+ $argsString .= $arg->__toString()."(Object)";
+ } elseif (is_object($arg)) {
+ // External object
+ $argsString .= "unknown object(!)";
+ } elseif (is_array($arg)) {
+ // Array
+ $argsString .= "Array(array)";
+ } elseif (is_string($arg)) {
+ // String
+ $argsString .= "\"".$arg."\"(string)";
+ } else {
+ // Unknown type (please report!)
+ $argsString .= $arg."(unknown!)";
+ }
+
+ // Add comma
+ $argsString .= ", ";
+ }
+
+ // Remove last comma
+ if (substr($argsString, -2, 1) === ",") $argsString = substr($argsString, 0, -2);
+ } else {
+ // Invalid arguments!
+ $argsString = sprintf("!INVALID:%s!", $args);
+ }
$this->getDebugInstance()->output(sprintf("[%s::%s] Stub! Args: %s",
$this->__toString(),
@@ -731,7 +774,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
*
* @return $fileIOInstance An instance to the file I/O sub-system
*/
- protected final function getFileIOInstance () {
+ protected final function getFileIoInstance () {
return $this->fileIOInstance;
}
@@ -741,7 +784,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
* @param $fileIOInstance An instance to the file I/O sub-system
* @return void
*/
- public final function setFileIOInstance (FileIOHandler $fileIOInstance) {
+ public final function setFileIoInstance (FileIoHandler $fileIOInstance) {
$this->fileIOInstance = $fileIOInstance;
}
@@ -805,7 +848,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
if ($appInstance->getLanguageInstance() === null) {
// Invalid language instance
throw new MissingLanguageHandlerException($appInstance, self::EXCEPTION_MISSING_LANGUAGE_HANDLER);
- } elseif ($appInstance->getFileIOInstance() === null) {
+ } elseif ($appInstance->getFileIoInstance() === null) {
// Invalid language instance
throw new MissingFileIoHandlerException($appInstance, self::EXCEPTION_MISSING_FILE_IO_HANDLER);
}
@@ -815,7 +858,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
$eval = sprintf("\$tplEngine = %s::create%s(
\"%s\",
\$appInstance->getLanguageInstance(),
- \$appInstance->getFileIOInstance()
+ \$appInstance->getFileIoInstance()
);",
$this->getConfigInstance()->readConfig("tpl_engine"),
$this->getConfigInstance()->readConfig("tpl_engine"),
@@ -858,6 +901,70 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
// Output it
ApplicationEntryPoint::app_die("Debug output:".$content);
}
+
+ /**
+ * Output a partial stub message for the caller method
+ *
+ * @param $message An optional message to display
+ * @return void
+ */
+ protected function partialStub ($message = "") {
+ // Get the backtrace
+ $backtrace = debug_backtrace();
+
+ // Generate the class::method string
+ $methodName = "UnknownClass::unknownMethod";
+ if ((isset($backtrace[1]['class'])) && (isset($backtrace[1]['function']))) {
+ $methodName = $backtrace[1]['class']."::".$backtrace[1]['function'];
+ }
+
+ // Construct the full message
+ $stubMessage = sprintf("[%s:] Partial stub!",
+ $methodName
+ );
+
+ // Is the extra message given?
+ if (!empty($message)) {
+ // Then add it as well
+ $stubMessage .= sprintf(" Message: %s", $message);
+ }
+
+ // Debug instance is there?
+ if (!is_null($this->getDebugInstance())) {
+ // Output stub message
+ $this->getDebugInstance()->output($stubMessage);
+ } else {
+ // Trigger an error
+ trigger_error($stubMessage."
\n");
+ }
+ }
+
+ /**
+ * Converts e.g. a command from URL to a valid class by keeping out bad characters
+ *
+ * @param $str The string, what ever it is needs to be converted
+ * @return $className Generated class name
+ */
+ public function convertToClassName ($str) {
+ $className = "";
+ foreach (explode("_", $str) as $strPart) {
+ $className .= ucfirst(strtolower($strPart));
+ }
+ return $className;
+ }
+
+ /**
+ * 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; + } } // [EOF]