*
* @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 - 2011 Core Developer Team
* @license GNU GPL 3.0 or any newer version
* @link http://www.ship-simu.org
*
*/
private $rngInstance = null;
+ /**
+ * Instance of a crypto helper
+ */
+ private $cryptoInstance = null;
+
/**
* Instance of an Iterator class
*/
*/
private $stackerInstance = null;
+ /**
+ * A Compressor instance
+ */
+ private $compressorInstance = null;
+
+ /**
+ * A Parseable instance
+ */
+ private $parserInstance = null;
+
+ /**
+ * A ProtocolHandler instance
+ */
+ private $protocolInstance = null;
+
+ /**
+ * A database wrapper instance
+ */
+ private $databaseInstance = null;
+
+ /**
+ * A helper instance for the form
+ */
+ private $helperInstance = null;
+
+ /**
+ * An instance of a source
+ */
+ private $sourceInstance = null;
+
/**
* The real class name
*/
- private $realClass = 'BaseFrameworkSystem';
+ private $realClass = 'BaseFrameworkSystem';
/**
* Thousands seperator
*/
private $decimals = ','; // German
+ /**
+ * Socket resource
+ */
+ private $socketResource = false;
+
+ /**
+ * Package data
+ */
+ private $packageData = array();
+
/***********************
* Exception codes.... *
***********************/
const EXCEPTION_ATTRIBUTES_ARE_MISSING = 0x02b;
const EXCEPTION_ARRAY_ELEMENTS_MISSING = 0x02c;
const EXCEPTION_TEMPLATE_ENGINE_UNSUPPORTED = 0x02d;
- const EXCEPTION_MISSING_LANGUAGE_HANDLER = 0x02e;
- const EXCEPTION_MISSING_FILE_IO_HANDLER = 0x02f;
const EXCEPTION_MISSING_ELEMENT = 0x030;
const EXCEPTION_HEADERS_ALREADY_SENT = 0x031;
const EXCEPTION_DEFAULT_CONTROLLER_GONE = 0x032;
// Set real class
$this->setRealClass($className);
- // Set configuration instance if no registry
+ // Set configuration instance if no registry ...
if (!$this instanceof Register) {
- // Because registries doesn't need to be configured
+ // ... because registries doesn't need to be configured
$this->setConfigInstance(FrameworkConfiguration::getInstance());
} // END - if
}
* Destructor reached...
*
* @return void
- * @todo This is old code. Do we still need this old lost code?
*/
public function __destruct() {
// Flush any updated entries to the database
}
/**
- * The call method where all non-implemented methods end up
+ * The __call() method where all non-implemented methods end up
*
+ * @param $methodName Name of the missing method
+ * @args $args Arguments passed to the method
* @return void
*/
public final function __call ($methodName, $args) {
// 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);
+ if (is_string($arg)) {
+ $argsString .= ', '.strlen($arg);
+ } // END - if
// Closing bracket
$argsString .= '), ';
return null;
}
+ /**
+ * Getter for $realClass
+ *
+ * @return $realClass The name of the real class (not BaseFrameworkSystem)
+ */
+ public function __toString () {
+ return $this->realClass;
+ }
+
+ /**
+ * Magic function to catch setting of missing but set class fields/attributes
+ *
+ * @param $name Name of the field/attribute
+ * @param $value Value to store
+ * @return void
+ */
+ public final function __set ($name, $value) {
+ $this->debugOutput(sprintf("Tried to set a missing field. name=%s, value[%s]=%s",
+ $name,
+ gettype($value),
+ $value
+ ));
+ }
+
+ /**
+ * Magic function to catch getting of missing fields/attributes
+ *
+ * @param $name Name of the field/attribute
+ * @return void
+ */
+ public final function __get ($name) {
+ $this->debugOutput(sprintf("Tried to get a missing field. name=%s",
+ $name
+ ));
+ }
+
/**
* Setter for database result instance
*
/**
* Setter for resolver instance
*
- * @param $resolverInstance Instance of a command resolver class
+ * @param $resolverInstance Instance of a command resolver class
* @return void
*/
public final function setResolverInstance (Resolver $resolverInstance) {
/**
* Getter for resolver instance
*
- * @return $resolverInstance Instance of a command resolver class
+ * @return $resolverInstance Instance of a command resolver class
*/
public final function getResolverInstance () {
return $this->resolverInstance;
/**
* Setter for database instance
*
- * @param $dbInstance The instance for the database connection
- * (forced DatabaseConnection)
+ * @param $dbInstance The instance for the database connection (forced DatabaseConnection)
* @return void
*/
public final function setDatabaseInstance (DatabaseConnection $dbInstance) {
return $this->responseInstance;
}
- /**
- * Getter for $realClass
- *
- * @return $realClass The name of the real class (not BaseFrameworkSystem)
- */
- public final function __toString () {
- return $this->realClass;
- }
-
/**
* Setter for the real class name
*
));
// Return the result
- return $result;
+ return $equals;
+ }
+
+ /**
+ * Generates a generic hash code of this class. You should really overwrite
+ * this method with your own hash code generator code. But keep KISS in mind.
+ *
+ * @return $hashCode A generic hash code respresenting this whole class
+ */
+ public function hashCode () {
+ // Simple hash code
+ return crc32($this->__toString());
}
/**
if ((!isset($this->decimals)) || (!isset($this->thousands))) {
// Throw an exception
throw new MissingDecimalsThousandsSeperatorException($this, self::EXCEPTION_ATTRIBUTES_ARE_MISSING);
- }
+ } // END - if
// Cast the number
$value = (float) $value;
*/
public final function addMissingTrailingSlash ($str) {
// Is there a trailing slash?
- if (substr($str, -1, 1) != '/') $str .= '/';
+ if (substr($str, -1, 1) != '/') {
+ $str .= '/';
+ } // END - if
+
+ // Return string with trailing slash
return $str;
}
* Prepare the template engine (WebTemplateEngine by default) for a given
* application helper instance (ApplicationHelper by default).
*
- * @param $appInstance An application helper instance or
+ * @param $applicationInstance An application helper instance or
* null if we shall use the default
- * @return $templateInstance The template engine instance
- * @throws NullPointerException If the template engine could not
- * be initialized
- * @throws UnsupportedTemplateEngineException If $templateInstance is an
- * unsupported template engine
- * @throws MissingLanguageHandlerException If the language sub-system
- * is not yet initialized
+ * @return $templateInstance The template engine instance
* @throws NullPointerException If the discovered application
* instance is still null
*/
- protected function prepareTemplateInstance (FrameworkInterface $appInstance=null) {
+ protected function prepareTemplateInstance (ManageableApplication $applicationInstance = null) {
// Is the application instance set?
- if (is_null($appInstance)) {
+ if (is_null($applicationInstance)) {
// Get the current instance
- $appInstance = $this->getApplicationInstance();
+ $applicationInstance = $this->getApplicationInstance();
// Still null?
- if (is_null($appInstance)) {
+ if (is_null($applicationInstance)) {
// Thrown an exception
throw new NullPointerException($this, self::EXCEPTION_IS_NULL_POINTER);
} // END - if
} // END - if
- // Are both instances set?
- if ($appInstance->getLanguageInstance() === null) {
- // Invalid language instance
- throw new MissingLanguageHandlerException($appInstance, self::EXCEPTION_MISSING_LANGUAGE_HANDLER);
- } elseif ($appInstance->getFileIoInstance() === null) {
- // Invalid language instance
- throw new MissingFileIoHandlerException($appInstance, self::EXCEPTION_MISSING_FILE_IO_HANDLER);
- }
-
// Initialize the template engine
- $templateInstance = ObjectFactory::createObjectByConfiguredName('web_template_class', array($appInstance));
+ $templateInstance = ObjectFactory::createObjectByConfiguredName('web_template_class');
// 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
*
// Generate the class::method string
$methodName = 'UnknownClass->unknownMethod';
if ((isset($backtrace[1]['class'])) && (isset($backtrace[1]['function']))) {
- $methodName = $backtrace[1]['class']."->".$backtrace[1]['function'];
+ $methodName = $backtrace[1]['class'] . '->' . $backtrace[1]['function'];
} // END - if
// Construct the full message
$this->debugOutput($stubMessage);
} else {
// Trigger an error
- trigger_error($stubMessage."<br />\n");
+ trigger_error($stubMessage . "<br />\n");
}
}
if (is_object($debugInstance)) {
// Use debug output handler
$debugInstance->output($message);
- if ($doPrint === false) die(); // Die here if not printed
+
+ if ($doPrint === false) {
+ // Die here if not printed
+ die();
+ } // END - if
} else {
// Put directly out
if ($doPrint === true) {
$this->debugOutput($message);
} else {
// Trigger an error
- trigger_error($message."<br />\n");
+ trigger_error($message . "<br />\n");
}
} else {
// @TODO Finish this part!
}
}
- /**
- * Generates a generic hash code of this class. You should really overwrite
- * this method with your own hash code generator code. But keep KISS in mind.
- *
- * @return $hashCode A generic hash code respresenting this whole class
- */
- public function hashCode () {
- // Simple hash code
- return crc32($this->__toString());
- }
-
/**
* Checks wether the given PHP extension is loaded
*
return $this->rngInstance;
}
+ /**
+ * Setter for Cryptable instance
+ *
+ * @param $cryptoInstance An instance of a Cryptable class
+ * @return void
+ */
+ protected final function setCryptoInstance (Cryptable $cryptoInstance) {
+ $this->cryptoInstance = $cryptoInstance;
+ }
+
+ /**
+ * Getter for Cryptable instance
+ *
+ * @return $cryptoInstance An instance of a Cryptable class
+ */
+ public final function getCryptoInstance () {
+ return $this->cryptoInstance;
+ }
+
/**
* Setter for Iterator instance
*
}
/**
- * Setter for image instanxe
+ * Setter for image instance
*
* @param $imageInstance An instance of an image
* @return void
}
/**
- * Getter for image instanxe
+ * Getter for image instance
*
* @return $imageInstance An instance of an image
*/
}
/**
- * Setter for stacker instanxe
+ * Setter for stacker instance
*
* @param $stackerInstance An instance of an stacker
* @return void
}
/**
- * Getter for stacker instanxe
+ * Getter for stacker instance
*
* @return $stackerInstance An instance of an stacker
*/
public final function getStackerInstance () {
return $this->stackerInstance;
}
+
+ /**
+ * Setter for compressor instance
+ *
+ * @param $compressorInstance An instance of an compressor
+ * @return void
+ */
+ public final function setCompressorInstance (Compressor $compressorInstance) {
+ $this->compressorInstance = $compressorInstance;
+ }
+
+ /**
+ * Getter for compressor instance
+ *
+ * @return $compressorInstance An instance of an compressor
+ */
+ public final function getCompressorInstance () {
+ return $this->compressorInstance;
+ }
+
+ /**
+ * Setter for Parseable instance
+ *
+ * @param $parserInstance An instance of an Parseable
+ * @return void
+ */
+ public final function setParserInstance (Parseable $parserInstance) {
+ $this->parserInstance = $parserInstance;
+ }
+
+ /**
+ * Getter for Parseable instance
+ *
+ * @return $parserInstance An instance of an Parseable
+ */
+ public final function getParserInstance () {
+ return $this->parserInstance;
+ }
+
+ /**
+ * Setter for ProtocolHandler instance
+ *
+ * @param $protocolInstance An instance of an ProtocolHandler
+ * @return void
+ */
+ public final function setProtocolInstance (ProtocolHandler $protocolInstance) {
+ $this->protocolInstance = $protocolInstance;
+ }
+
+ /**
+ * Getter for ProtocolHandler instance
+ *
+ * @return $protocolInstance An instance of an ProtocolHandler
+ */
+ public final function getProtocolInstance () {
+ return $this->protocolInstance;
+ }
+
+ /**
+ * Setter for BaseDatabaseWrapper instance
+ *
+ * @param $wrapperInstance An instance of an BaseDatabaseWrapper
+ * @return void
+ */
+ public final function setWrapperInstance (BaseDatabaseWrapper $wrapperInstance) {
+ $this->wrapperInstance = $wrapperInstance;
+ }
+
+ /**
+ * Getter for BaseDatabaseWrapper instance
+ *
+ * @return $wrapperInstance An instance of an BaseDatabaseWrapper
+ */
+ public final function getWrapperInstance () {
+ return $this->wrapperInstance;
+ }
+
+ /**
+ * Setter for socket resource
+ *
+ * @param $socketResource A valid socket resource
+ * @return void
+ */
+ public final function setSocketResource ($socketResource) {
+ $this->socketResource = $socketResource;
+ }
+
+ /**
+ * Getter for socket resource
+ *
+ * @return $socketResource A valid socket resource
+ */
+ public function getSocketResource () {
+ return $this->socketResource;
+ }
+
+ /**
+ * Setter for helper instance
+ *
+ * @param $helperInstance An instance of a helper class
+ * @return void
+ */
+ protected final function setHelperInstance (Helper $helperInstance) {
+ $this->helperInstance = $helperInstance;
+ }
+
+ /**
+ * Getter for helper instance
+ *
+ * @return $helperInstance An instance of a helper class
+ */
+ public final function getHelperInstance () {
+ return $this->helperInstance;
+ }
+
+ /**
+ * Setter for a Sourceable instance
+ *
+ * @param $sourceInstance The Sourceable instance
+ * @return void
+ */
+ protected final function setSourceInstance (Sourceable $sourceInstance) {
+ $this->sourceInstance = $sourceInstance;
+ }
+
+ /**
+ * Getter for a Sourceable instance
+ *
+ * @param $sourceInstance The Sourceable instance
+ */
+ protected final function getSourceInstance () {
+ return $this->sourceInstance;
+ }
+
+ /**
+ * Setter for raw package Data
+ *
+ * @param $packageData Raw package Data
+ * @return void
+ */
+ public final function setPackageData (array $packageData) {
+ $this->packageData = $packageData;
+ }
+
+ /**
+ * Getter for raw package Data
+ *
+ * @return $packageData Raw package Data
+ */
+ public function getPackageData () {
+ return $this->packageData;
+ }
}
// [EOF]