*
* @author Roland Haeder <webmaster@ship-simu.org>
* @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team
+ * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009, 2010 Core Developer Team
* @license GNU GPL 3.0 or any newer version
* @link http://www.ship-simu.org
*
*/
private $iteratorInstance = null;
+ /**
+ * Instance of the list
+ */
+ private $listInstance = null;
+
+ /**
+ * Instance of a menu
+ */
+ private $menuInstance = null;
+
+ /**
+ * Instance of the image
+ */
+ private $imageInstance = null;
+
+ /**
+ * Instance of the stacker
+ */
+ private $stackerInstance = null;
+
+ /**
+ * A Compressor instance
+ */
+ private $compressorInstance = null;
+
+ /**
+ * A Parseable instance
+ */
+ private $parserInstance = null;
+
/**
* The real class name
*/
/***********************
* Exception codes.... *
***********************/
-
+ // @todo Try to clean these constants up
const EXCEPTION_IS_NULL_POINTER = 0x001;
const EXCEPTION_IS_NO_OBJECT = 0x002;
const EXCEPTION_IS_NO_ARRAY = 0x003;
const EXCEPTION_WRITE_PROTECED_PATH = 0x018;
const EXCEPTION_DIR_POINTER_INVALID = 0x019;
const EXCEPTION_FILE_POINTER_INVALID = 0x01a;
- const EXCEPTION_INVALID_DIRECTORY_POINTER = 0x01b;
+ const EXCEPTION_INVALID_RESOURCE = 0x01b;
const EXCEPTION_UNEXPECTED_OBJECT = 0x01c;
const EXCEPTION_LIMIT_ELEMENT_IS_UNSUPPORTED = 0x01d;
const EXCEPTION_GETTER_IS_MISSING = 0x01e;
// Set real class
$this->setRealClass($className);
- // Initialize the class if class Registry is there
- if ((class_exists('Registry')) && (Registry::isInitialized() === false)) {
- // Initialize the registry automatically
- $this->initInstance();
+ // Set configuration instance if no registry
+ if (!$this instanceof Register) {
+ // Because registries doesn't need to be configured
+ $this->setConfigInstance(FrameworkConfiguration::getInstance());
} // END - if
}
// Some arguments are there
foreach ($args as $arg) {
// Add the type
- $argsString .= $arg . ' (' . gettype($arg);
+ $argsString .= $this->replaceControlCharacters($arg) . ' (' . gettype($arg);
// Add length if type is string
if (gettype($arg) == 'string') $argsString .= ', '.strlen($arg);
return null;
}
- /**
- * Private initializer for this class
- *
- * @return void
- */
- private final function initInstance () {
- // Set configuration instance
- $this->setConfigInstance(FrameworkConfiguration::getInstance());
- }
-
/**
* Setter for database result instance
*
* @return $debugInstance Instance to class DebugConsoleOutput or DebugWebOutput
*/
public final function getDebugInstance () {
+ // Get debug instance
$debugInstance = Registry::getRegistry()->getInstance('debug');
+
+ // Return it
return $debugInstance;
}
* @return $dbInstance The database layer instance
*/
public final function getDatabaseInstance () {
- // Default is invalid db instance
- $dbInstance = null;
-
- // Is the registry there and initialized?
- if ((class_exists('Registry')) && (Registry::isInitialized() === true)) {
- $dbInstance = Registry::getRegistry()->getInstance('db_instance');
- } // END - if
+ // Get instance
+ $dbInstance = Registry::getRegistry()->getInstance('db_instance');
// Return instance
return $dbInstance;
}
// Initialize the template engine
- $templateInstance = ObjectFactory::createObjectByConfiguredName('template_class', array($appInstance));
+ $templateInstance = ObjectFactory::createObjectByConfiguredName('web_template_class', array($appInstance));
// Return the prepared instance
return $templateInstance;
));
}
+ /**
+ * Replaces control characters with printable output
+ *
+ * @param $str String with control characters
+ * @return $str Replaced string
+ */
+ protected function replaceControlCharacters ($str) {
+ // Replace them
+ $str = str_replace(
+ "\r", '[r]', str_replace(
+ "\n", '[n]', str_replace(
+ "\t", '[t]',
+ $str
+ )));
+
+ // Return it
+ return $str;
+ }
+
/**
* Output a partial stub message for the caller method
*
$readable = $this->getLanguageInstance()->getMessage('null_timestamp');
} else {
switch ($this->getLanguageInstance()->getLanguageCode()) {
- case "de": // German format is a bit different to default
+ case 'de': // German format is a bit different to default
// Split the GMT stamp up
$dateTime = explode(' ', $timestamp );
$dateArray = explode('-', $dateTime[0]);
default: // Default is pass-through
$readable = $timestamp;
break;
- }
+ } // END - switch
}
// Return the stamp
return $readable;
}
+ /**
+ * Filter a given number into a localized number
+ *
+ * @param $value The raw value from e.g. database
+ * @return $localized Localized value
+ */
+ public function doFilterFormatNumber ($value) {
+ // Generate it from config and localize dependencies
+ switch ($this->getLanguageInstance()->getLanguageCode()) {
+ case 'de': // German format is a bit different to default
+ $localized = number_format($value, $this->getConfigInstance()->getConfigEntry('decimals'), ',', '.');
+ break;
+
+ default: // US, etc.
+ $localized = number_format($value, $this->getConfigInstance()->getConfigEntry('decimals'), '.', ',');
+ break;
+ } // END - switch
+
+ // Return it
+ return $localized;
+ }
+
/**
* "Getter" for databse entry
*
// Get current array
$fieldArray = $resultInstance->current();
+ //* DEBUG: */ $this->debugOutput($fieldName.':<pre>'.print_r($fieldArray, true).'</pre>');
// Does the field exist?
if (isset($fieldArray[$fieldName])) {
public final function getIteratorInstance () {
return $this->iteratorInstance;
}
+
+ /**
+ * "Getter" as a time() replacement but with milliseconds. You should use this
+ * method instead of the encapsulated getimeofday() function.
+ *
+ * @return $milliTime Timestamp with milliseconds
+ */
+ public function getMilliTime () {
+ // Get the time of day as float
+ $milliTime = gettimeofday(true);
+
+ // Return it
+ return $milliTime;
+ }
+
+ /**
+ * Idles (sleeps) for given milliseconds
+ *
+ * @return $hasSlept Wether it goes fine
+ */
+ public function idle ($milliSeconds) {
+ // Sleep is fine by default
+ $hasSlept = true;
+
+ // Idle so long with found function
+ if (function_exists('time_sleep_until')) {
+ // Get current time and add idle time
+ $sleepUntil = $this->getMilliTime() + abs($milliSeconds) / 1000;
+
+ // New PHP 5.1.0 function found
+ $hasSlept = time_sleep_until($sleepUntil);
+ } else {
+ // My Sun Station doesn't have that function even with latest PHP
+ // package. :(
+ usleep($milliSeconds * 1000);
+ }
+
+ // Return result
+ return $hasSlept;
+ }
+
+ /**
+ * Setter for the list instance
+ *
+ * @param $listInstance A list of Listable
+ * @return void
+ */
+ protected final function setListInstance (Listable $listInstance) {
+ $this->listInstance = $listInstance;
+ }
+
+ /**
+ * Getter for the list instance
+ *
+ * @return $listInstance A list of Listable
+ */
+ protected final function getListInstance () {
+ return $this->listInstance;
+ }
+
+ /**
+ * Setter for the menu instance
+ *
+ * @param $menuInstance A RenderableMenu instance
+ * @return void
+ */
+ protected final function setMenuInstance (RenderableMenu $menuInstance) {
+ $this->menuInstance = $menuInstance;
+ }
+
+ /**
+ * Getter for the menu instance
+ *
+ * @return $menuInstance A RenderableMenu instance
+ */
+ protected final function getMenuInstance () {
+ return $this->menuInstance;
+ }
+
+ /**
+ * Setter for image instanxe
+ *
+ * @param $imageInstance An instance of an image
+ * @return void
+ */
+ public final function setImageInstance (BaseImage $imageInstance) {
+ $this->imageInstance = $imageInstance;
+ }
+
+ /**
+ * Getter for image instanxe
+ *
+ * @return $imageInstance An instance of an image
+ */
+ public final function getImageInstance () {
+ return $this->imageInstance;
+ }
+
+ /**
+ * Setter for stacker instanxe
+ *
+ * @param $stackerInstance An instance of an stacker
+ * @return void
+ */
+ public final function setStackerInstance (Stackable $stackerInstance) {
+ $this->stackerInstance = $stackerInstance;
+ }
+
+ /**
+ * Getter for stacker instanxe
+ *
+ * @return $stackerInstance An instance of an stacker
+ */
+ public final function getStackerInstance () {
+ return $this->stackerInstance;
+ }
+
+ /**
+ * Setter for compressor instanxe
+ *
+ * @param $compressorInstance An instance of an compressor
+ * @return void
+ */
+ public final function setCompressorInstance (Compressor $compressorInstance) {
+ $this->compressorInstance = $compressorInstance;
+ }
+
+ /**
+ * Getter for compressor instanxe
+ *
+ * @return $compressorInstance An instance of an compressor
+ */
+ public final function getCompressorInstance () {
+ return $this->compressorInstance;
+ }
+
+ /**
+ * Setter for Parseable instanxe
+ *
+ * @param $parserInstance An instance of an Parseable
+ * @return void
+ */
+ public final function setParserInstance (Parseable $parserInstance) {
+ $this->parserInstance = $parserInstance;
+ }
+
+ /**
+ * Getter for Parseable instanxe
+ *
+ * @return $parserInstance An instance of an Parseable
+ */
+ public final function getParserInstance () {
+ return $this->parserInstance;
+ }
}
// [EOF]