* class handles saving of games etc.
*
* @author Roland Haeder <webmaster@ship-simu.org>
- * @version 0.3.0
+ * @version 0.0.0
* @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software
* @license GNU GPL 3.0 or any newer version
- * @link http://www.mxchange.org
+ * @link http://www.ship-simu.org
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*/
private $dbInstance = null;
+ /**
+ * Instance to an application helper class
+ */
+ private $applicationInstance = null;
+
/**
* The real class name
*/
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;
/**
* In the super constructor these system classes shall be ignored or else
*--------------------------------------------------------------------*
*/
private $systemClasses = array(
- "DebugMiddleware", // Debug middleware output sub-system
- "DebugWebOutput", // Debug web output sub-system
- "DebugConsoleOutput", // Debug console output sub-system
- "DebugErrorLogOutput", // Debug error_log() output sub-system
- "CompressorChannel", // Compressor sub-system
+ "DebugMiddleware", // Debug middleware output sub-system
+ "DebugWebOutput", // Debug web output sub-system
+ "DebugConsoleOutput", // Debug console output sub-system
+ "DebugErrorLogOutput", // Debug error_log() output sub-system
+ "CompressorChannel", // Compressor sub-system
"FrameworkDirectoryPointer", // Directory handler sub-system
- "NullCompressor", // Null compressor
- "Bzip2Compressor", // BZIP2 compressor
- "GzipCompressor", // GZIP compressor
- "WebOutput", // Web output sub-system
+ "NullCompressor", // Null compressor
+ "Bzip2Compressor", // BZIP2 compressor
+ "GzipCompressor", // GZIP compressor
+ "WebOutput", // Web output sub-system
);
/**
*
* @return void
*/
- private function __construct ($class) {
+ protected function __construct ($class) {
// Set real class
$this->setRealClass($class);
+
+ // Init this instance
+ $this->initInstance($class);
}
/**
}
/**
- * Public constructor (for initializing things, etc.)
+ * Initializes the instance
*
* @return void
*/
- public function constructor ($class) {
- // Call constructor
- $this->__construct($class);
-
+ public function initInstance ($class) {
// Get the current (singleton) configuration instance
$this->setConfigInstance(FrameworkConfiguration::createFrameworkConfiguration());
/**
* Setter for language instance
*
- * @param $configInstance The configuration instance which shall
+ * @param $configInstance The configuration instance which shall
* be FrameworkConfiguration
* @return void
*/
public final function setConfigInstance (FrameworkConfiguration $configInstance) {
- $this->cfgInstance = $configInstance;
+ self::$cfgInstance = $configInstance;
if ((defined('DEBUG_SYSTEM')) && (is_object($this->getDebugInstance()))) $this->getDebugInstance()->output(sprintf("[%s:] Konfigurations-Handler auf <strong>%s</strong> gesetzt.<br />\n",
$this->__toString(),
$configInstance->__toString()
public final function getConfigInstance () {
if ((defined('DEBUG_SYSTEM')) && (is_object($this->getDebugInstance()))) $this->getDebugInstance()->output(sprintf("[%s:] Konfigurations-Handler <strong>%s</strong> angefordert.<br />\n",
$this->__toString(),
- $this->cfgInstance->__toString()
+ self::$cfgInstance->__toString()
));
- return $this->cfgInstance;
+ return self::$cfgInstance;
}
/**
$this->fileIOInstance = $fileIOInstance;
}
+ /**
+ * Protected getter for a manageable application helper class
+ *
+ * @return $applicationInstance An instance of a manageable application helper class
+ */
+ protected final function getApplicationInstance () {
+ return $this->applicationInstance;
+ }
+
+ /**
+ * Setter for a manageable application helper class
+ *
+ * @param $applicationInstance An instance of a manageable application helper class
+ * @return void
+ */
+ public final function setApplicationInstance (ManageableApplication $applicationInstance) {
+ $this->applicationInstance = $applicationInstance;
+ }
+
/**
* Prepare the template engine (TemplateEngine by default) for a given
* application helper instance (ApplicationHelper by default).
*
- * @param $appInstance An application helper instance
+ * @param $appInstance An application helper instance or
+ * null if we shall use the default
* @return $tplEngine The template engine instance
* @throws NullPointerException If the template engine could not
* be initialized
* unsupported template engine
* @throws MissingLanguageHandlerException If the language sub-system
* is not yet initialized
- */
- protected function prepareTemplateEngine (BaseFrameworkSystem $appInstance) {
+ * @throws NullPointerException If the discovered application
+ * instance is still null
+ */
+ protected function prepareTemplateEngine (BaseFrameworkSystem $appInstance=null) {
+ // Is the application instance set?
+ if (is_null($appInstance)) {
+ // Get the current instance
+ $appInstance = $this->getApplicationInstance();
+
+ // Still null?
+ if (is_null($appInstance)) {
+ // Thrown an exception
+ throw new NullPointerException($this, self::EXCEPTION_IS_NULL_POINTER);
+ }
+ }
+
// Generate FQFN for all application templates
$fqfn = sprintf("%s%s/%s/%s",
PATH,
// Return the prepared instance
return $tplEngine;
}
+
+ /**
+ * Debugs this instance by putting out it's full content
+ *
+ * @return void
+ */
+ public final function debugInstance () {
+ // Generate the output
+ $content = "<pre>".trim(print_r($this, true))."</pre>";
+
+ // Output it
+ ApplicationEntryPoint::app_die("<strong>Debug output:</strong>".$content);
+ }
}
// [EOF]