Added new exception code (please cleanup others!).
[core.git] / inc / classes / main / class_BaseFrameworkSystem.php
index 78ee47fd14e132606ac5d62bd32caf54b23cf981..01a280da02ee32b936ceec5632c492c303ae986e 100644 (file)
@@ -249,6 +249,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
        const EXCEPTION_ARRAY_ELEMENTS_MISSING       = 0x02c;
        const EXCEPTION_TEMPLATE_ENGINE_UNSUPPORTED  = 0x02d;
        const EXCEPTION_UNSPPORTED_OPERATION         = 0x02e;
+       const EXCEPTION_FACTORY_REQUIRE_PARAMETER    = 0x02f;
        const EXCEPTION_MISSING_ELEMENT              = 0x030;
        const EXCEPTION_HEADERS_ALREADY_SENT         = 0x031;
        const EXCEPTION_DEFAULT_CONTROLLER_GONE      = 0x032;
@@ -259,7 +260,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
        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;
+       const EXCEPTION_FILTER_CHAIN_INTERCEPTED     = 0x03a;
 
        /**
         * Hexadecimal->Decimal translation array
@@ -1446,20 +1447,29 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
         * @return      $debugInstance  An instance of a debugger class
         */
        public final static function createDebugInstance ($className) {
-               // Init debug instance
-               $debugInstance = NULL;
+               // Is the instance set?
+               if (!Registry::getRegistry()->instanceExists('debug')) {
+                       // Init debug instance
+                       $debugInstance = NULL;
+
+                       // Try it
+                       try {
+                               // Get a debugger instance
+                               $debugInstance = DebugMiddleware::createDebugMiddleware(FrameworkConfiguration::getSelfInstance()->getConfigEntry('debug_class'));
+                       } catch (NullPointerException $e) {
+                               // Didn't work, no instance there
+                               exit('Cannot create debugInstance! Exception=' . $e->__toString() . ', message=' . $e->getMessage());
+                       }
 
-               // Try it
-               try {
-                       // Get a debugger instance
-                       $debugInstance = DebugMiddleware::createDebugMiddleware(FrameworkConfiguration::getSelfInstance()->getConfigEntry('debug_class'));
-               } catch (NullPointerException $e) {
-                       // Didn't work, no instance there
-                       exit('Cannot create debugInstance! Exception=' . $e->__toString() . ', message=' . $e->getMessage());
-               }
+                       // Empty string should be ignored and used for testing the middleware
+                       DebugMiddleware::getSelfInstance()->output('');
 
-               // Empty string should be ignored and used for testing the middleware
-               DebugMiddleware::getSelfInstance()->output('');
+                       // Set it in its own class. This will set it in the registry
+                       $debugInstance->setDebugInstance($debugInstance);
+               } else {
+                       // Get instance from registry
+                       $debugInstance = Registry::getRegistry()->getDebugInstance();
+               }
 
                // Return it
                return $debugInstance;