*/
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(),
// Initialize debug instance
if (is_null($this->getDebugInstance())) {
// Set the debug output system if it is not debug class ;)
- $this->setDebugInstance(DebugMiddleware::createDebugMiddleware($this->getConfigInstance()->readConfig("debug_engine")));
+ $this->setDebugInstance(DebugMiddleware::createDebugMiddleware($this->getConfigInstance()->readConfig('debug_engine')));
}
// Initialize web instance
if (is_null($this->getWebOutputInstance())) {
// Generate the eval() command
$eval = sprintf("\$this->setWebOutputInstance(%s::create%s(\"%s\"));",
- $this->getConfigInstance()->readConfig("web_engine"),
- $this->getConfigInstance()->readConfig("web_engine"),
- $this->getConfigInstance()->readConfig("web_content_type")
+ $this->getConfigInstance()->readConfig('web_engine'),
+ $this->getConfigInstance()->readConfig('web_engine'),
+ $this->getConfigInstance()->readConfig('web_content_type')
);
// Debug message
// Set the compressor channel
$this->setCompressorChannel(CompressorChannel::createCompressorChannel(sprintf("%s%s",
PATH,
- $this->getConfigInstance()->readConfig("compressor_base_path")
+ $this->getConfigInstance()->readConfig('compressor_base_path')
)));
}
*
* @return $fileIOInstance An instance to the file I/O sub-system
*/
- protected final function getFileIOInstance () {
+ protected final function getFileIoInstance () {
return $this->fileIOInstance;
}
* @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;
}
// Generate FQFN for all application templates
$fqfn = sprintf("%s%s/%s/%s",
PATH,
- $this->getConfigInstance()->readConfig("application_path"),
+ $this->getConfigInstance()->readConfig('application_path'),
strtolower($appInstance->getAppShortName()),
- $this->getConfigInstance()->readConfig("tpl_base_path")
+ $this->getConfigInstance()->readConfig('tpl_base_path')
);
// Are both instances set?
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);
}
$eval = sprintf("\$tplEngine = %s::create%s(
\"%s\",
\$appInstance->getLanguageInstance(),
- \$appInstance->getFileIOInstance()
+ \$appInstance->getFileIoInstance()
);",
- $this->getConfigInstance()->readConfig("tpl_engine"),
- $this->getConfigInstance()->readConfig("tpl_engine"),
+ $this->getConfigInstance()->readConfig('tpl_engine'),
+ $this->getConfigInstance()->readConfig('tpl_engine'),
$fqfn
);
*/
public final function debugInstance () {
// Generate the output
- $content = "<pre>".trim(print_r($this, true))."</pre>";
+ $content = sprintf("<pre>%s</pre>",
+ trim(print_r($this, true))
+ );
// Output it
- ApplicationEntryPoint::app_die("<strong>Debug output:</strong>".$content);
+ ApplicationEntryPoint::app_die(sprintf("<strong>%s debug output:</strong>%s", $this->__toString(), $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: <u>%s</u>", $message);
+ }
+
+ // Debug instance is there?
+ if (!is_null($this->getDebugInstance())) {
+ // Output stub message
+ $this->getDebugInstance()->output($stubMessage);
+ } else {
+ // Trigger an error
+ trigger_error($stubMessage."<br />\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 "<pre>\n";
+ debug_print_backtrace();
+ print "</pre>";
+ exit;
}
}