*
* @author Roland Haeder <webmaster@ship-simu.org>
* @version 0.0.0
- * @copyright Copyright (c) 2007 - 2009 Roland Haeder, this is free software
+ * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team
* @license GNU GPL 3.0 or any newer version
* @link http://www.ship-simu.org
*
/**
* The real class name
*/
- private $realClass = "FrameworkSystem";
+ private $realClass = 'FrameworkSystem';
/**
* Thousands seperator
*/
- private $thousands = "."; // German
+ private $thousands = '.'; // German
/**
* Decimal seperator
*/
- private $decimals = ","; // German
+ private $decimals = ','; // German
/***********************
* Exception codes.... *
const EXCEPTION_ASSERTION_FAILED = 0x037;
const EXCEPTION_FILE_CANNOT_BE_READ = 0x038;
const EXCEPTION_DATABASE_UPDATED_NOT_ALLOWED = 0x039;
+ const EXCEPTION_FILTER_CHAIN_INTERCEPTED = 0x040;
/**
* In the super constructor these system classes shall be ignored or else
*---------------------------------------------------------------------*
*/
private $systemClasses = array(
- "DebugMiddleware", // Debug middleware output sub-system
- "Registry", // Object registry
- "ObjectFactory", // Object factory
- "DebugWebOutput", // Debug web output sub-system
- "WebOutput", // Web output sub-system
- "CompressorChannel", // Compressor sub-system
- "DebugConsoleOutput", // Debug console output sub-system
- "DebugErrorLogOutput", // Debug error_log() output sub-system
- "FrameworkDirectoryPointer", // Directory handler sub-system
- "NullCompressor", // Null compressor
- "Bzip2Compressor", // BZIP2 compressor
- "GzipCompressor", // GZIP compressor
+ 'DebugMiddleware', // Debug middleware output sub-system
+ 'Registry', // Object registry
+ 'ObjectFactory', // Object factory
+ 'DebugWebOutput', // Debug web output sub-system
+ 'WebOutput', // Web output sub-system
+ 'CompressorChannel', // Compressor sub-system
+ 'DebugConsoleOutput', // Debug console output sub-system
+ 'DebugErrorLogOutput', // Debug error_log() output sub-system
+ 'FrameworkDirectoryPointer', // Directory handler sub-system
+ 'NullCompressor', // Null compressor
+ 'Bzip2Compressor', // BZIP2 compressor
+ 'GzipCompressor', // GZIP compressor
);
-
/**
- * Private super constructor
+ * Protected super constructor
*
* @param $className Name of the class
* @return void
} elseif ((defined('DEBUG_DESTRUCTOR')) && (is_object($this->getDebugInstance()))) {
// Already destructed object
$this->debugOutput(sprintf("[%s:] The object <span class=\"object_name\">%s</span> is already destroyed.",
- __CLASS__, $this->__toString()
+ __CLASS__,
+ $this->__toString()
));
}
}
*/
public final function __call ($methodName, $args) {
// Implode all given arguments
- $argsString = "";
+ $argsString = '';
if (empty($args)) {
// No arguments
- $argsString = "NULL";
+ $argsString = 'NULL';
} elseif (is_array($args)) {
// Some arguments are there
foreach ($args as $arg) {
// Add the type
- $argsString .= $arg." (".gettype($arg);
+ $argsString .= $arg . ' (' . gettype($arg);
// Add length if type is string
- if (gettype($arg) == 'string') $argsString .= ", ".strlen($arg);
+ if (gettype($arg) == 'string') $argsString .= ', '.strlen($arg);
// Closing bracket
- $argsString .= "), ";
+ $argsString .= '), ';
} // END - foreach
// Remove last comma
- if (substr($argsString, -2, 1) === ",") {
+ if (substr($argsString, -2, 1) == ',') {
$argsString = substr($argsString, 0, -2);
} // END - if
} else {
// Invalid arguments!
- $argsString = sprintf("!INVALID:%s!", $args);
+ $argsString = '!INVALID:' . gettype($args) . '!';
}
// Output stub message
$this->setDebugInstance(DebugMiddleware::createDebugMiddleware($this->getConfigInstance()->readConfig('debug_class')));
// Get output instance and set it
- $outputInstance = ObjectFactory::createObjectByConfiguredName('web_engine', array($this->getConfigInstance()->readConfig('web_content_type')));
+ $outputInstance = ObjectFactory::createObjectByConfiguredName('output_class', array($this->getConfigInstance()->readConfig('web_content_type')));
$this->setWebOutputInstance($outputInstance);
// Set the compressor channel
- $this->setCompressorChannel(CompressorChannel::createCompressorChannel(sprintf("%s%s",
- $this->getConfigInstance()->readConfig('base_path'),
+ $this->setCompressorChannel(CompressorChannel::createCompressorChannel(
+ $this->getConfigInstance()->readConfig('base_path').
$this->getConfigInstance()->readConfig('compressor_base_path')
- )));
+ ));
// Initialization done! :D
Registry::isInitialized('OK');
/**
* Getter for configuration instance
*
- * @return $cfgInstance Configuration instance
+ * @return $configInstance Configuration instance
*/
public final function getConfigInstance () {
- $cfgInstance = Registry::getRegistry()->getInstance('config');
- return $cfgInstance;
+ $configInstance = Registry::getRegistry()->getInstance('config');
+ return $configInstance;
}
/**
* thousands seperator
* is missing
*/
- public function formatCurrency ($value, $currency = "€", $decNum = 2) {
+ public function formatCurrency ($value, $currency = '€', $decNum = 2) {
// Are all required attriutes set?
if ((!isset($this->decimals)) || (!isset($this->thousands))) {
// Throw an exception
$value = (float) $value;
// Reformat the US number
- $price = sprintf("%s %s",
- number_format($value, $decNum, $this->decimals, $this->thousands),
- $currency
- );
+ $price = number_format($value, $decNum, $this->decimals, $this->thousands) . $currency;
// Return as string...
return $price;
*/
public final function addMissingTrailingSlash ($str) {
// Is there a trailing slash?
- if (substr($str, -1, 1) != "/") $str .= "/";
+ if (substr($str, -1, 1) != '/') $str .= '/';
return $str;
}
} // END - if
} // END - if
- // Generate FQFN for all application templates
- $fqfn = sprintf("%s%s/%s",
- $this->getConfigInstance()->readConfig('application_path'),
- strtolower($appInstance->getAppShortName()),
- $this->getConfigInstance()->readConfig('tpl_base_path')
- );
-
// Are both instances set?
if ($appInstance->getLanguageInstance() === null) {
// Invalid language instance
}
// Initialize the template engine
- $templateInstance = ObjectFactory::createObjectByConfiguredName('template_class', array($fqfn, $appInstance->getLanguageInstance(), $appInstance->getFileIoInstance()));
+ $templateInstance = ObjectFactory::createObjectByConfiguredName('template_class', array($appInstance));
// Return the prepared instance
return $templateInstance;
* @param $message Optional message to show in debug output
* @return void
*/
- public final function debugInstance ($message = "") {
+ public final function debugInstance ($message = '') {
// Restore the error handler to avoid trouble with missing array elements or undeclared variables
restore_error_handler();
// Init content
- $content = "";
+ $content = '';
// Is a message set?
if (!empty($message)) {
* @param $message An optional message to display
* @return void
*/
- protected function partialStub ($message = "") {
+ protected function partialStub ($message = '') {
// Get the backtrace
$backtrace = debug_backtrace();
// Generate the class::method string
- $methodName = "UnknownClass->unknownMethod";
+ $methodName = 'UnknownClass->unknownMethod';
if ((isset($backtrace[1]['class'])) && (isset($backtrace[1]['function']))) {
$methodName = $backtrace[1]['class']."->".$backtrace[1]['function'];
} // END - if
if ($doPrint === false) die(); // Die here if not printed
} else {
// Put directly out
- if ($doPrint) {
+ if ($doPrint === true) {
print($message);
} else {
// DO NOT REWRITE THIS TO app_die() !!!
*/
public function convertToClassName ($str) {
// Init class name
- $className = "";
+ $className = '';
// Convert all dashes in underscores
- $str = str_replace("-", "_", $str);
+ $str = $this->convertDashesToUnderscores($str);
// Now use that underscores to get classname parts for hungarian style
- foreach (explode("_", $str) as $strPart) {
+ foreach (explode('_', $str) as $strPart) {
// Make the class name part lower case and first upper case
$className .= ucfirst(strtolower($strPart));
} // END - foreach
return $className;
}
+ /**
+ * Converts dashes to underscores, e.g. useable for configuration entries
+ *
+ * @param $str The string with maybe dashes inside
+ * @return $str The converted string with no dashed, but underscores
+ */
+ public final function convertDashesToUnderscores ($str) {
+ // Convert them all
+ $str = str_replace('-', '_', $str);
+
+ // Return converted string
+ return $str;
+ }
+
/**
* Marks up the code by adding e.g. line numbers
*
*/
public function markupCode ($phpCode) {
// Init marked code
- $markedCode = "";
+ $markedCode = '';
// Get last error
$errorArray = error_get_last();
*/
public function doFilterFormatTimestamp ($timestamp) {
// Default value to return
- $readable = "???";
+ $readable = '???';
// Is the timestamp null?
if (is_null($timestamp)) {
switch ($this->getLanguageInstance()->getLanguageCode()) {
case "de": // German format is a bit different to default
// Split the GMT stamp up
- $dateTime = explode(" ", $timestamp);
- $dateArray = explode("-", $dateTime[0]);
- $timeArray = explode(":", $dateTime[1]);
+ $dateTime = explode(' ', $timestamp );
+ $dateArray = explode('-', $dateTime[0]);
+ $timeArray = explode(':', $dateTime[1]);
// Construct the timestamp
$readable = sprintf($this->getConfigInstance()->readConfig('german_date_time'),
$wrapperInstance->doUpdateByResult($this->getResultInstance());
} // END - if
}
+
+ /**
+ * Outputs a deprecation warning to the developer.
+ *
+ * @param $message The message we shall output to the developer
+ * @return void
+ * @todo Write a logging mechanism for productive mode
+ */
+ public function deprecationWarning ($message) {
+ // Is developer mode active?
+ if (defined('DEVELOPER')) {
+ // Debug instance is there?
+ if (!is_null($this->getDebugInstance())) {
+ // Output stub message
+ $this->debugOutput($message);
+ } else {
+ // Trigger an error
+ trigger_error($message."<br />\n");
+ }
+ } else {
+ // @TODO Finish this part!
+ $this->partialStub('Developer mode inactive. Message:' . $message);
+ }
+ }
}
// [EOF]