linea21-externals
[ class tree: linea21-externals ] [ index: linea21-externals ] [ all elements ]

Source for file DebugLine.php

Documentation is available at DebugLine.php

  1. <?php
  2.  
  3. /**
  4.  * A loader class for the renderers.
  5.  *
  6.  * @package    linea21.externals
  7.  * @subpackage PHP_DEBUG
  8.  * @author     Vernet Loïc <qrf_coil[at]yahoo.fr>, modified by Linea21 <info@linea21.com>
  9.  * @since V2.0.0 - 10 Apr 2006
  10.  *
  11.  * @version    CVS: $Id: DebugLine.php,v 1.1 2008/05/02 14:26:37 c0il Exp $
  12.  */
  13.  
  14. {
  15.  
  16.   /**
  17.    * PHP_DEBUGLINE Types
  18.    *
  19.    * - TYPE_ANY          : All available types (for search mode)
  20.    * - TYPE_STD          : Standart debug
  21.    * - TYPE_QUERY        : Query debug
  22.    * - TYPE_REL          : Database related debug
  23.    * - TYPE_ENV          : Environment debug ($GLOBALS...)
  24.    * - TYPE_APPERROR     : Custom application error
  25.    * - TYPE_CREDITS      : Credits information
  26.    * - TYPE_SEARCH       : Search mode in debug
  27.    * - TYPE_DUMP         : Dump any kind of variable
  28.    * - TYPE_PROCESSPERF  : Performance analysys
  29.    * - TYPE_TEMPLATES    : Included templates of the calling script
  30.    * - TYPE_PAGEACTION   : Store main page action
  31.    * - TYPE_SQLPARSE     : SQL Parse error
  32.    * - TYPE_WATCH        : A variable to watch
  33.    * - TYPE_PHPERROR     : A debug generated by the custom error handler
  34.    *
  35.    * @category DebugLine
  36.    */
  37.  
  38.   const TYPE_ANY         0;
  39.   const TYPE_STD         1;
  40.   const TYPE_QUERY       2;
  41.   const TYPE_QUERYREL    3;
  42.   const TYPE_ENV         4;
  43.   const TYPE_APPERROR    5;
  44.   const TYPE_CREDITS     6;
  45.   const TYPE_SEARCH      7;
  46.   const TYPE_DUMP        8;
  47.   const TYPE_PROCESSPERF 9;
  48.   const TYPE_TEMPLATES   10;
  49.   const TYPE_PAGEACTION  11;
  50.   const TYPE_SQLPARSE    12;
  51.   const TYPE_WATCH       13;
  52.   const TYPE_PHPERROR    14;
  53.   const TYPE_DEFAULT     self::TYPE_STD;
  54.  
  55.   /**
  56.    * PHP_DEBUGLINE info levels
  57.    */
  58.   const INFO_LEVEL    1;
  59.   const WARNING_LEVEL 2;
  60.   const ERROR_LEVEL   3;
  61.  
  62.   /**
  63.    * Labels for debugline types
  64.    */
  65.   public static $debugLineLabels array(
  66.   self::TYPE_ANY         => 'ALL',
  67.   self::TYPE_STD         => 'Standart',
  68.   self::TYPE_QUERY       => 'Query',
  69.   self::TYPE_QUERYREL    => 'Database related',
  70.   self::TYPE_ENV         => 'Environment',
  71.   self::TYPE_APPERROR    => 'Application error',
  72.   self::TYPE_CREDITS     => 'Credits',
  73.   self::TYPE_SEARCH      => 'Search',
  74.   self::TYPE_DUMP        => 'Variable dump',
  75.   self::TYPE_PROCESSPERF => 'Performance analysis',
  76.   self::TYPE_TEMPLATES   => 'Included files',
  77.   self::TYPE_PAGEACTION  => 'Page main action',
  78.   self::TYPE_SQLPARSE    => 'SQL parse error',
  79.   self::TYPE_WATCH       => 'Watch',
  80.   self::TYPE_PHPERROR    => 'PHP error'
  81.   );
  82.  
  83.   /**
  84.    * Properties that stores the non formatted debug information
  85.    *
  86.    * @since V2.0.0 - 11 apr 2006
  87.    * @var string 
  88.    */
  89.   protected $info;
  90.  
  91.   /**
  92.    * Type of the debug information
  93.    *
  94.    * @since V2.0.0 - 11 apr 2006
  95.    * @see Debug_Line constants
  96.    * @var integer 
  97.    */
  98.   protected $type;
  99.  
  100.   /**
  101.    * File of debug info
  102.    *
  103.    * @since V2.0.0 - 11 apr 2006
  104.    * @var integer 
  105.    */
  106.   protected $file;
  107.  
  108.   /**
  109.    * Line of debug info
  110.    *
  111.    * @since V2.0.0 - 11 apr 2006
  112.    * @var integer 
  113.    */
  114.   protected $line;
  115.  
  116.   /**
  117.    * Class from witch the debug was called
  118.    *
  119.    * @since V2.0.0 - 13 apr 2006
  120.    * @var integer 
  121.    */
  122.   protected $class;
  123.  
  124.   /**
  125.    * Function from wich the debug was called
  126.    *
  127.    * @var integer 
  128.    * @since V2.0.0 - 11 apr 2006
  129.    */
  130.   protected $function;
  131.  
  132.   /**
  133.    * Exection time for debug info
  134.    *
  135.    * @var float 
  136.    * @see stopTimer()
  137.    * @since V2.0.0 - 16 apr 2006
  138.    */
  139.   protected $startTime;
  140.  
  141.   /**
  142.    * Exection end time for debug info
  143.    *
  144.    * @see PHP_Debug::stopTimer(), setEndTime()
  145.    * @since V2.0.0 - 16 apr 2006
  146.    * @var float 
  147.    */
  148.   protected $endTime;
  149.  
  150.   /**
  151.    * PHP_DebugLine class constructor
  152.    *
  153.    * Here it is set :
  154.    * - the start time of the debug info
  155.    * - the traceback information
  156.    *
  157.    * @since V2.0.0 - 11 apr 2006
  158.    * @see PHP_Debug::add()
  159.    */
  160.   public function __construct($info$type self::TYPE_DEFAULT)
  161.   {
  162.     $this->setStartTime();
  163.     $this->info = $info;
  164.     $this->type = $type;
  165.     $this->setTraceback();
  166.   }
  167.  
  168.   /**
  169.    * Fills properties of debug line with backtrace informations
  170.    *
  171.    * @since V2.0.0 - 15 apr 2006
  172.    */
  173.   protected function setTraceback()
  174.   {
  175.     $callStack debug_backtrace();
  176.     $idx 0;
  177.  
  178.     // Get max id of 'add' debug functions
  179.     foreach($callStack as $lkey => $lvalue{
  180.       if (in_array($callStack[$lkey]['function'],
  181.       PHP_Debug::$excludedBackTraceFunctions== true
  182.       {
  183.         $idx $lkey;
  184.       }
  185.     }
  186.  
  187.     $this->file     = !empty($callStack[$idx]  ['file'])
  188.     ? $callStack[$idx]['file']       '';
  189.     $this->line     = !empty($callStack[$idx]  ['line'])
  190.     ? $callStack[$idx]['line']       '';
  191.     $this->function = !empty($callStack[$idx+1]['function'])
  192.     ? $callStack[$idx+1]['function''';
  193.     $this->class    = !empty($callStack[$idx+1]['class'])
  194.     ? $callStack[$idx+1]['class']    '';
  195.   }
  196.  
  197.   /**
  198.    * Getter of all properties of Debug_Line object
  199.    *
  200.    * @return array    Array containg all the properties of the debugline
  201.    * @since V2.0.0 - 21 apr 2006
  202.    */
  203.   public function getProperties()
  204.   {
  205.     return array(
  206.             'class'     => $this->class,
  207.             'file'      => $this->file,
  208.             'function'  => $this->function,
  209.             'line'      => $this->line,
  210.             'info'      => $this->info,
  211.             'type'      => $this->type,
  212.             'startTime' => $this->startTime,
  213.             'endTime'   => $this->endTime
  214.     );
  215.   }
  216.  
  217.   /**
  218.    * setter of endTime
  219.    *
  220.    * @since V2.0.0 - 19 apr 2006
  221.    */
  222.   public function setEndTime($endTime '')
  223.   {
  224.     $this->endTime = $endTime $endTime PHP_Debug::getMicroTimeNow();
  225.   }
  226.  
  227.   /**
  228.    * setter of startTime
  229.    *
  230.    * @see pear bug http://pear.php.net/bugs/10919
  231.    *
  232.    * @since V2.1.2 - 04 may 2006
  233.    */
  234.   public function setStartTime($startTime '')
  235.   {
  236.     $this->startTime = $startTime $startTime PHP_Debug::getMicroTimeNow();
  237.   }
  238.  
  239.   /**
  240.    * Debug_Line default output function
  241.    *
  242.    * @since V2.0.0 - 11 apr 2006
  243.    * @see PHP_Debug::dumpVar()
  244.    */
  245.   public function __toString()
  246.   {
  247.     return '<pre>'.
  248.     PHP_Debug::dumpVar(
  249.     $this,
  250.     __CLASS__,
  251.     false,
  252.     PHP_DEBUG_DUMP_ARR_STR
  253.     )
  254.     . '</pre>';
  255.   }
  256.  
  257.   /**
  258.    * Function that give the debug type lable
  259.    *
  260.    * @author COil
  261.    * @since  V2.0.0 - 2 apr 2007
  262.    */
  263.   public static function getDebugLabel($type)
  264.   {
  265.     return self::$debugLineLabels[$type];
  266.   }
  267. }

Documentation generated on Thu, 03 May 2012 15:03:36 +0200 by phpDocumentor 1.4.1