/**
* The concrete output instance
*/
- private $outputHandler = null;
+ private $outputInstance = null;
/**
* An instance of this class
parent::__construct(__CLASS__);
// Set description
- $this->setObjectDescription("Debug-Ausgabe-Handler");
+ $this->setObjectDescription("Debug-Ausgabe-Instance");
// Create an unique ID
$this->generateUniqueId();
* If no output is given this class is currently being used for back-fall.
* This fall-back mechanism will become deprecated very soon.
*
- * @param $debuggerClass The class name which we shall use for
+ * @param $debuggerClass The class name which we shall use for
* registering the *real* debug output
- * @return $debugInstance An instance of this middleware class
+ * @return $debugInstance An instance of this middleware class
*/
public final static function createDebugMiddleware ($debuggerClass) {
// Create an instance if this middleware
$debugInstance = new DebugMiddleware();
- // Is there a valid output handler provided?
- if ((!is_null($debuggerClass)) && (is_object($debuggerClass)) && (method_exists($debuggerClass, 'outputStream'))) {
- // Use the given output system
- $debugInstance->setOutputHandler($debuggerClass);
+ // Is there a valid output instance provided?
+ if ((!is_null($debuggerClass)) && (is_object($debuggerClass)) && ($debuggerClass instanceof OutputStreamer)) {
+ // Use the given output instance
+ $debugInstance->setOutputInstance($debuggerClass);
} elseif ((!is_null($debuggerClass)) && (is_string($debuggerClass)) && (class_exists($debuggerClass))) {
// A name for a debug output class has been provided so we try to get it
- $eval = sprintf("\$debuggerClass = %s::create%s();",
- $debuggerClass,
- $debuggerClass
- );
+ $debuggerInstance = ObjectFactory::createObjectByName($debuggerClass);
- // Run the constructed name
- @eval($eval);
-
- // Was this successfull?
- if ((is_object($debuggerClass)) && (method_exists($debuggerClass, "outputStream"))) {
- // Set this as output class
- $debugInstance->setOutputHandler($debuggerClass);
- } else {
- // No object or method is missing use fall-back
- throw new MissingMethodException(array($debuggerClass, 'outputStream'), self::EXCEPTION_MISSING_METHOD);
- }
+ // Set this as output class
+ $debugInstance->setOutputInstance($debuggerInstance);
}
// Return instance
}
/**
- * Setter for output handler
+ * Setter for output instance
*
+ * @param $outputInstance The debug output instance
* @return void
*/
- public final function setOutputHandler ($outputHandler) {
- $this->outputHandler = $outputHandler;
+ public final function setOutputInstance (OutputStreamer $outputInstance) {
+ $this->outputInstance = $outputInstance;
}
/**
* This method shall send debug output which can be HTML code for the
* browser or debug lines for a log file, etc. to the registered debug
- * output handler.
+ * output instance.
*
* @return void
*/
public final function output ($outStream) {
- // Check if the output handler is valid
- if (is_null($this->outputHandler)) {
- // Debug output handler was not set
+ // Check if the output instance is valid
+ if (is_null($this->outputInstance)) {
+ // Debug output instance was not set
throw new NullPointerException($this, self::EXCEPTION_IS_NULL_POINTER);
- } elseif (!is_object($this->outputHandler)) {
- // The debug output handler is not an object
- throw new NoObjectException($this->ouputHandler, self::EXCEPTION_IS_NO_OBJECT);
- } elseif (!method_exists($this->outputHandler, 'outputStream')) {
+ } elseif (!is_object($this->outputInstance)) {
+ // The debug output instance is not an object
+ throw new NoObjectException($this->ouputInstance, self::EXCEPTION_IS_NO_OBJECT);
+ } elseif (!method_exists($this->outputInstance, 'outputStream')) {
// The required method outputStream() is missing
- throw new MissingMethodException(array($this->outputHandler, 'outputStream'), self::EXCEPTION_MISSING_METHOD);
+ throw new MissingMethodException(array($this->outputInstance, 'outputStream'), self::EXCEPTION_MISSING_METHOD);
}
// Is the output stream set
return;
}
- // Use the output handler
- $this->outputHandler->outputStream($outStream);
+ // Use the output instance
+ $this->outputInstance->outputStream($outStream);
}
}