Added __unset() to catch unsetting of missing fields/attributes
[core.git] / inc / classes / main / class_BaseFrameworkSystem.php
index 0eaddce17e5e361d872b15c72af8c3551ee0ee73..85dd986a4e0a2626a95d26028876518c01b9184e 100644 (file)
@@ -328,7 +328,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
         * @return      void
         */
        public final function __set ($name, $value) {
-               $this->debugOutput(sprintf("Tried to set a missing field. name=%s, value[%s]=%s",
+               $this->debugBackTrace(sprintf("Tried to set a missing field. name=%s, value[%s]=%s",
                        $name,
                        gettype($value),
                        $value
@@ -342,7 +342,19 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
         * @return      void
         */
        public final function __get ($name) {
-               $this->debugOutput(sprintf("Tried to get a missing field. name=%s",
+               $this->debugBackTrace(sprintf("Tried to get a missing field. name=%s",
+                       $name
+               ));
+       }
+
+       /**
+        * Magic function to catch unsetting of missing fields/attributes
+        *
+        * @param       $name   Name of the field/attribute
+        * @return      void
+        */
+       public final function __unset ($name) {
+               $this->debugBackTrace(sprintf("Tried to unset a missing field. name=%s",
                        $name
                ));
        }
@@ -862,10 +874,16 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
        /**
         * Outputs a debug backtrace and stops further script execution
         *
+        * @param       $message        An optional message to output
         * @return      void
         */
-       public function debugBackTrace () {
+       public function debugBackTrace ($message = '') {
                // Sorry, there is no other way getting this nice backtrace
+               if (!empty($message)) {
+                       // Output message
+                       printf("Message: %s<br />\n", $message);
+               } // END - if
+
                print("<pre>\n");
                debug_print_backtrace();
                print("</pre>");