Esempio n. 1
0
 /**
  * Logs variables to the Firebug Console
  * via HTTP response headers and the FirePHP Firefox Extension.
  *
  * @param  mixed  $var   The variable to log.
  * @param  string  $label OPTIONAL Label to prepend to the log event.
  * @param  string  $style  OPTIONAL Style of the log event.
  * @return boolean Returns TRUE if the variable was added to the response headers or buffered.
  * @throws Zend_Wildfire_Exception
  */
 public static function send($var, $label = null, $style = null)
 {
     if (self::$_instance === null) {
         self::getInstance();
     }
     if (!self::$_instance->_enabled) {
         return false;
     }
     if ($var instanceof Zend_Wildfire_Plugin_FirePhp_Message) {
         if ($var->getBuffered()) {
             if (!in_array($var, self::$_instance->_messages)) {
                 self::$_instance->_messages[] = $var;
             }
             return true;
         }
         if ($var->getDestroy()) {
             return false;
         }
         $style = $var->getStyle();
         $label = $var->getLabel();
         $var = $var->getMessage();
     }
     if (!self::$_instance->_channel->isReady()) {
         return false;
     }
     if ($var instanceof Exception) {
         $var = array('Class' => get_class($var), 'Message' => $var->getMessage(), 'File' => $var->getFile(), 'Line' => $var->getLine(), 'Type' => 'throw', 'Trace' => $var->getTrace());
         $style = self::EXCEPTION;
     } else {
         if ($style == self::TRACE) {
             $trace = debug_backtrace();
             if (!$trace) {
                 return false;
             }
             for ($i = 0; $i < sizeof($trace); $i++) {
                 if (isset($trace[$i]['class']) && substr($trace[$i]['class'], 0, 8) != 'Zend_Log' && substr($trace[$i]['class'], 0, 13) != 'Zend_Wildfire') {
                     $i--;
                     break;
                 }
             }
             if ($i == sizeof($trace)) {
                 $i = 0;
             }
             $var = array('Class' => $trace[$i]['class'], 'Type' => $trace[$i]['type'], 'Function' => $trace[$i]['function'], 'Message' => isset($trace[$i]['args'][0]) ? $trace[$i]['args'][0] : '', 'File' => isset($trace[$i]['file']) ? $trace[$i]['file'] : '', 'Line' => isset($trace[$i]['line']) ? $trace[$i]['line'] : '', 'Args' => $trace[$i]['args'], 'Trace' => array_splice($trace, $i + 1));
         } else {
             if ($style === null) {
                 $style = self::LOG;
             }
         }
     }
     switch ($style) {
         case self::LOG:
         case self::INFO:
         case self::WARN:
         case self::ERROR:
         case self::EXCEPTION:
         case self::TRACE:
         case self::TABLE:
         case self::DUMP:
         case self::GROUP_START:
         case self::GROUP_END:
             break;
         default:
             #require_once 'Zend/Wildfire/Exception.php';
             throw new Zend_Wildfire_Exception('Log style "' . $style . '" not recognized!');
             break;
     }
     if ($style == self::DUMP) {
         return self::$_instance->_recordMessage(self::STRUCTURE_URI_DUMP, array('key' => $label, 'data' => $var));
     } else {
         $meta = array('Type' => $style);
         if ($label != null) {
             $meta['Label'] = $label;
         }
         return self::$_instance->_recordMessage(self::STRUCTURE_URI_FIREBUGCONSOLE, array('data' => $var, 'meta' => $meta));
     }
 }