[ Index ]
 

Code source de e107 0.7.8

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/e107_handlers/ -> pcltrace.lib.php (source)

   1  <?php
   2  if (!defined('e107_INIT')) { exit; }
   3  
   4  // --------------------------------------------------------------------------------
   5  // PhpConcept Library (PCL) Trace 1.0
   6  // --------------------------------------------------------------------------------
   7  // License GNU/GPL - Vincent Blavet - Janvier 2001
   8  // http://www.phpconcept.net & http://phpconcept.free.fr
   9  // --------------------------------------------------------------------------------
  10  // Français :
  11  //   La description de l'usage de la librairie PCL Trace 1.0 n'est pas encore
  12  //   disponible. Celle-ci n'est pour le moment distribuée qu'avec l'application
  13  //   et la librairie PhpZip.
  14  //   Une version indépendante sera bientot disponible sur http://www.phpconcept.net
  15  //
  16  // English :
  17  //   The PCL Trace 1.0 library description is not available yet. This library is
  18  //   released only with PhpZip application and library.
  19  //   An independant release will be soon available on http://www.phpconcept.net
  20  //
  21  // --------------------------------------------------------------------------------
  22  //
  23  //   * Avertissement :
  24  //
  25  //   Cette librairie a été créée de façon non professionnelle.
  26  //   Son usage est au risque et péril de celui qui l'utilise, en aucun cas l'auteur
  27  //   de ce code ne pourra être tenu pour responsable des éventuels dégats qu'il pourrait
  28  //   engendrer.
  29  //   Il est entendu cependant que l'auteur a réalisé ce code par plaisir et n'y a
  30  //   caché aucun virus, ni malveillance.
  31  //   Cette libairie est distribuée sous la license GNU/GPL (http://www.gnu.org)
  32  //
  33  //   * Auteur :
  34  //
  35  //   Ce code a été écrit par Vincent Blavet (vincent@blavet.net) sur son temps
  36  //   de loisir.
  37  //
  38  // --------------------------------------------------------------------------------
  39  
  40  // ----- Look for double include
  41  if (!defined("PCLTRACE_LIB"))
  42  {
  43    define( "PCLTRACE_LIB", 1 );
  44  
  45    // ----- Version
  46    $g_pcl_trace_version = "1.0";
  47  
  48    // ----- Internal variables
  49    // These values must be change by PclTrace library functions
  50    $g_pcl_trace_mode = "memory";
  51    $g_pcl_trace_filename = "trace.txt";
  52    $g_pcl_trace_name = array();
  53    $g_pcl_trace_index = 0;
  54    $g_pcl_trace_level = 0;
  55    //$g_pcl_trace_entries = array();
  56  
  57  
  58    // --------------------------------------------------------------------------------
  59    // Function : TrOn($p_level, $p_mode, $p_filename)
  60    // Description :
  61    // Parameters :
  62    //   $p_level : Trace level
  63    //   $p_mode : Mode of trace displaying :
  64    //             'normal' : messages are displayed at function call
  65    //             'memory' : messages are memorized in a table and can be display by
  66    //                        TrDisplay() function. (default)
  67    //             'log'    : messages are writed in the file $p_filename
  68    // --------------------------------------------------------------------------------
  69    function TrOn($p_level=1, $p_mode="memory", $p_filename="trace.txt")
  70    {
  71      global $g_pcl_trace_level;
  72      global $g_pcl_trace_mode;
  73      global $g_pcl_trace_filename;
  74      global $g_pcl_trace_name;
  75      global $g_pcl_trace_index;
  76      global $g_pcl_trace_entries;
  77  
  78      // ----- Enable trace mode
  79      $g_pcl_trace_level = $p_level;
  80  
  81      // ----- Memorize mode and filename
  82      switch ($p_mode) {
  83        case "normal" :
  84        case "memory" :
  85        case "log" :
  86          $g_pcl_trace_mode = $p_mode;
  87        break;
  88        default :
  89          $g_pcl_trace_mode = "logged";
  90      }
  91  
  92      // ----- Memorize filename
  93      $g_pcl_trace_filename = $p_filename;
  94    }
  95    // --------------------------------------------------------------------------------
  96  
  97    // --------------------------------------------------------------------------------
  98    // Function : IsTrOn()
  99    // Description :
 100    // Return value :
 101    //   The trace level (0 for disable).
 102    // --------------------------------------------------------------------------------
 103    function IsTrOn()
 104    {
 105      global $g_pcl_trace_level;
 106  
 107      return($g_pcl_trace_level);
 108    }
 109    // --------------------------------------------------------------------------------
 110  
 111    // --------------------------------------------------------------------------------
 112    // Function : TrOff()
 113    // Description :
 114    // Parameters :
 115    // --------------------------------------------------------------------------------
 116    function TrOff()
 117    {
 118      global $g_pcl_trace_level;
 119      global $g_pcl_trace_mode;
 120      global $g_pcl_trace_filename;
 121      global $g_pcl_trace_name;
 122      global $g_pcl_trace_index;
 123  
 124      // ----- Clean
 125      $g_pcl_trace_mode = "memory";
 126      unset($g_pcl_trace_entries);
 127      unset($g_pcl_trace_name);
 128      unset($g_pcl_trace_index);
 129  
 130      // ----- Switch off trace
 131      $g_pcl_trace_level = 0;
 132    }
 133    // --------------------------------------------------------------------------------
 134  
 135  
 136    // --------------------------------------------------------------------------------
 137    // Function : TrFctStart()
 138    // Description :
 139    //   Just a trace function for debbugging purpose before I use a better tool !!!!
 140    //   Start and stop of this function is by $g_pcl_trace_level global variable.
 141    // Parameters :
 142    //   $p_level : Level of trace required.
 143    // --------------------------------------------------------------------------------
 144    function TrFctStart($p_file, $p_line, $p_name, $p_param="", $p_message="")
 145    {
 146      global $g_pcl_trace_level;
 147      global $g_pcl_trace_mode;
 148      global $g_pcl_trace_filename;
 149      global $g_pcl_trace_name;
 150      global $g_pcl_trace_index;
 151      global $g_pcl_trace_entries;
 152  
 153      // ----- Look for disabled trace
 154      if ($g_pcl_trace_level < 1)
 155        return;
 156  
 157      // ----- Add the function name in the list
 158      if (!isset($g_pcl_trace_name))
 159        $g_pcl_trace_name = $p_name;
 160      else
 161        $g_pcl_trace_name .= ",".$p_name;
 162  
 163      // ----- Update the function entry
 164      $i = sizeof($g_pcl_trace_entries);
 165      $g_pcl_trace_entries[$i][name] = $p_name;
 166      $g_pcl_trace_entries[$i][param] = $p_param;
 167      $g_pcl_trace_entries[$i][message] = "";
 168      $g_pcl_trace_entries[$i][file] = $p_file;
 169      $g_pcl_trace_entries[$i][line] = $p_line;
 170      $g_pcl_trace_entries[$i][index] = $g_pcl_trace_index;
 171      $g_pcl_trace_entries[$i][type] = "1"; // means start of function
 172  
 173      // ----- Update the message entry
 174      if ($p_message != "")
 175      {
 176      $i = sizeof($g_pcl_trace_entries);
 177      $g_pcl_trace_entries[$i][name] = "";
 178      $g_pcl_trace_entries[$i][param] = "";
 179      $g_pcl_trace_entries[$i][message] = $p_message;
 180      $g_pcl_trace_entries[$i][file] = $p_file;
 181      $g_pcl_trace_entries[$i][line] = $p_line;
 182      $g_pcl_trace_entries[$i][index] = $g_pcl_trace_index;
 183      $g_pcl_trace_entries[$i][type] = "3"; // means message
 184      }
 185  
 186      // ----- Action depending on mode
 187      PclTraceAction($g_pcl_trace_entries[$i]);
 188  
 189      // ----- Increment the index
 190      $g_pcl_trace_index++;
 191    }
 192    // --------------------------------------------------------------------------------
 193  
 194    // --------------------------------------------------------------------------------
 195    // Function : TrFctEnd()
 196    // Description :
 197    //   Just a trace function for debbugging purpose before I use a better tool !!!!
 198    //   Start and stop of this function is by $g_pcl_trace_level global variable.
 199    // Parameters :
 200    //   $p_level : Level of trace required.
 201    // --------------------------------------------------------------------------------
 202    function TrFctEnd($p_file, $p_line, $p_return=1, $p_message="")
 203    {
 204      global $g_pcl_trace_level;
 205      global $g_pcl_trace_mode;
 206      global $g_pcl_trace_filename;
 207      global $g_pcl_trace_name;
 208      global $g_pcl_trace_index;
 209      global $g_pcl_trace_entries;
 210  
 211      // ----- Look for disabled trace
 212      if ($g_pcl_trace_level < 1)
 213        return;
 214  
 215      // ----- Extract the function name in the list
 216      // ----- Remove the function name in the list
 217      if (!($v_name = strrchr($g_pcl_trace_name, ",")))
 218      {
 219        $v_name = $g_pcl_trace_name;
 220        $g_pcl_trace_name = "";
 221      }
 222      else
 223      {
 224        $g_pcl_trace_name = substr($g_pcl_trace_name, 0, strlen($g_pcl_trace_name)-strlen($v_name));
 225        $v_name = substr($v_name, -strlen($v_name)+1);
 226      }
 227  
 228      // ----- Decrement the index
 229      $g_pcl_trace_index--;
 230  
 231      // ----- Update the message entry
 232      if ($p_message != "")
 233      {
 234      $i = sizeof($g_pcl_trace_entries);
 235      $g_pcl_trace_entries[$i][name] = "";
 236      $g_pcl_trace_entries[$i][param] = "";
 237      $g_pcl_trace_entries[$i][message] = $p_message;
 238      $g_pcl_trace_entries[$i][file] = $p_file;
 239      $g_pcl_trace_entries[$i][line] = $p_line;
 240      $g_pcl_trace_entries[$i][index] = $g_pcl_trace_index;
 241      $g_pcl_trace_entries[$i][type] = "3"; // means message
 242      }
 243  
 244      // ----- Update the function entry
 245      $i = sizeof($g_pcl_trace_entries);
 246      $g_pcl_trace_entries[$i][name] = $v_name;
 247      $g_pcl_trace_entries[$i][param] = $p_return;
 248      $g_pcl_trace_entries[$i][message] = "";
 249      $g_pcl_trace_entries[$i][file] = $p_file;
 250      $g_pcl_trace_entries[$i][line] = $p_line;
 251      $g_pcl_trace_entries[$i][index] = $g_pcl_trace_index;
 252      $g_pcl_trace_entries[$i][type] = "2"; // means end of function
 253  
 254      // ----- Action depending on mode
 255      PclTraceAction($g_pcl_trace_entries[$i]);
 256    }
 257    // --------------------------------------------------------------------------------
 258  
 259    // --------------------------------------------------------------------------------
 260    // Function : TrFctMessage()
 261    // Description :
 262    // Parameters :
 263    // --------------------------------------------------------------------------------
 264    function TrFctMessage($p_file, $p_line, $p_level, $p_message="")
 265    {
 266      global $g_pcl_trace_level;
 267      global $g_pcl_trace_mode;
 268      global $g_pcl_trace_filename;
 269      global $g_pcl_trace_name;
 270      global $g_pcl_trace_index;
 271      global $g_pcl_trace_entries;
 272  
 273      // ----- Look for disabled trace
 274      if ($g_pcl_trace_level < $p_level)
 275        return;
 276  
 277      // ----- Update the entry
 278      $i = sizeof($g_pcl_trace_entries);
 279      $g_pcl_trace_entries[$i][name] = "";
 280      $g_pcl_trace_entries[$i][param] = "";
 281      $g_pcl_trace_entries[$i][message] = $p_message;
 282      $g_pcl_trace_entries[$i][file] = $p_file;
 283      $g_pcl_trace_entries[$i][line] = $p_line;
 284      $g_pcl_trace_entries[$i][index] = $g_pcl_trace_index;
 285      $g_pcl_trace_entries[$i][type] = "3"; // means message of function
 286  
 287      // ----- Action depending on mode
 288      PclTraceAction($g_pcl_trace_entries[$i]);
 289    }
 290    // --------------------------------------------------------------------------------
 291  
 292    // --------------------------------------------------------------------------------
 293    // Function : TrMessage()
 294    // Description :
 295    // Parameters :
 296    // --------------------------------------------------------------------------------
 297    function TrMessage($p_file, $p_line, $p_level, $p_message="")
 298    {
 299      global $g_pcl_trace_level;
 300      global $g_pcl_trace_mode;
 301      global $g_pcl_trace_filename;
 302      global $g_pcl_trace_name;
 303      global $g_pcl_trace_index;
 304      global $g_pcl_trace_entries;
 305  
 306      // ----- Look for disabled trace
 307      if ($g_pcl_trace_level < $p_level)
 308        return;
 309  
 310      // ----- Update the entry
 311      $i = sizeof($g_pcl_trace_entries);
 312      $g_pcl_trace_entries[$i][name] = "";
 313      $g_pcl_trace_entries[$i][param] = "";
 314      $g_pcl_trace_entries[$i][message] = $p_message;
 315      $g_pcl_trace_entries[$i][file] = $p_file;
 316      $g_pcl_trace_entries[$i][line] = $p_line;
 317      $g_pcl_trace_entries[$i][index] = $g_pcl_trace_index;
 318      $g_pcl_trace_entries[$i][type] = "4"; // means simple message
 319  
 320      // ----- Action depending on mode
 321      PclTraceAction($g_pcl_trace_entries[$i]);
 322    }
 323    // --------------------------------------------------------------------------------
 324  
 325  
 326    // --------------------------------------------------------------------------------
 327    // Function : TrDisplay()
 328    // Description :
 329    // Parameters :
 330    // --------------------------------------------------------------------------------
 331    function TrDisplay()
 332    {
 333      global $g_pcl_trace_level;
 334      global $g_pcl_trace_mode;
 335      global $g_pcl_trace_filename;
 336      global $g_pcl_trace_name;
 337      global $g_pcl_trace_index;
 338      global $g_pcl_trace_entries;
 339  
 340      // ----- Look for disabled trace
 341      if (($g_pcl_trace_level <= 0) || ($g_pcl_trace_mode != "memory"))
 342        return;
 343  
 344      $v_font = "\"Verdana, Arial, Helvetica, sans-serif\"";
 345  
 346      // ----- Trace Header
 347      echo "<table width=100% border=0 cellspacing=0 cellpadding=0>";
 348      echo "<tr bgcolor=#0000CC>";
 349      echo "<td bgcolor=#0000CC width=1>";
 350      echo "</td>";
 351      echo "<td><div align=center><font size=3 color=#FFFFFF face=$v_font>Trace</font></div></td>";
 352      echo "</tr>";
 353      echo "<tr>";
 354      echo "<td bgcolor=#0000CC width=1>";
 355      echo "</td>";
 356      echo "<td>";
 357  
 358      // ----- Content header
 359      echo "<table width=100% border=0 cellspacing=0 cellpadding=0>";
 360  
 361      // ----- Display
 362      $v_again=0;
 363      for ($i=0; $i<sizeof($g_pcl_trace_entries); $i++)
 364      {
 365        // ---- Row header
 366        echo "<tr>";
 367        echo "<td><table width=100% border=0 cellspacing=0 cellpadding=0><tr>";
 368        $n = ($g_pcl_trace_entries[$i][index]+1)*10;
 369        echo "<td width=".$n."><table width=100% border=0 cellspacing=0 cellpadding=0><tr>";
 370  
 371        for ($j=0; $j<=$g_pcl_trace_entries[$i][index]; $j++)
 372        {
 373          if ($j==$g_pcl_trace_entries[$i][index])
 374          {
 375            if (($g_pcl_trace_entries[$i][type] == 1) || ($g_pcl_trace_entries[$i][type] == 2))
 376            echo "<td width=10><div align=center><font size=2 face=$v_font>+</font></div></td>";
 377          }
 378          else
 379            echo "<td width=10><div align=center><font size=2 face=$v_font>|</font></div></td>";
 380        }
 381        //echo "<td>&nbsp</td>";
 382        echo "</tr></table></td>";
 383  
 384        echo "<td width=2></td>";
 385        switch ($g_pcl_trace_entries[$i][type]) {
 386          case 1:
 387            echo "<td><font size=2 face=$v_font>".$g_pcl_trace_entries[$i][name]."(".$g_pcl_trace_entries[$i][param].")</font></td>";
 388          break;
 389          case 2:
 390            echo "<td><font size=2 face=$v_font>".$g_pcl_trace_entries[$i][name]."()=".$g_pcl_trace_entries[$i][param]."</font></td>";
 391          break;
 392          case 3:
 393          case 4:
 394            echo "<td><table width=100% border=0 cellspacing=0 cellpadding=0><td width=20></td><td>";
 395            echo "<font size=2 face=$v_font>".$g_pcl_trace_entries[$i][message]."</font>";
 396            echo "</td></table></td>";
 397          break;
 398          default:
 399          echo "<td><font size=2 face=$v_font>".$g_pcl_trace_entries[$i][name]."(".$g_pcl_trace_entries[$i][param].")</font></td>";
 400        }
 401        echo "</tr></table></td>";
 402        echo "<td width=5></td>";
 403        echo "<td><font size=1 face=$v_font>".basename($g_pcl_trace_entries[$i][file])."</font></td>";
 404        echo "<td width=5></td>";
 405        echo "<td><font size=1 face=$v_font>".$g_pcl_trace_entries[$i][line]."</font></td>";
 406        echo "</tr>";
 407      }
 408  
 409      // ----- Content footer
 410      echo "</table>";
 411  
 412      // ----- Trace footer
 413      echo "</td>";
 414      echo "<td bgcolor=#0000CC width=1>";
 415      echo "</td>";
 416      echo "</tr>";
 417      echo "<tr bgcolor=#0000CC>";
 418      echo "<td bgcolor=#0000CC width=1>";
 419      echo "</td>";
 420      echo "<td><div align=center><font color=#FFFFFF face=$v_font>&nbsp</font></div></td>";
 421      echo "</tr>";
 422      echo "</table>";
 423    }
 424    // --------------------------------------------------------------------------------
 425  
 426    // --------------------------------------------------------------------------------
 427    // Function : PclTraceAction()
 428    // Description :
 429    // Parameters :
 430    // --------------------------------------------------------------------------------
 431    function PclTraceAction($p_entry)
 432    {
 433      global $g_pcl_trace_level;
 434      global $g_pcl_trace_mode;
 435      global $g_pcl_trace_filename;
 436      global $g_pcl_trace_name;
 437      global $g_pcl_trace_index;
 438      global $g_pcl_trace_entries;
 439  
 440      if ($g_pcl_trace_mode == "normal")
 441      {
 442        for ($i=0; $i<$p_entry[index]; $i++)
 443          echo "---";
 444        if ($p_entry[type] == 1)
 445          echo "<b>".$p_entry[name]."</b>(".$p_entry[param].") : ".$p_entry[message]." [".$p_entry[file].", ".$p_entry[line]."]<br>";
 446        else if ($p_entry[type] == 2)
 447          echo "<b>".$p_entry[name]."</b>()=".$p_entry[param]." : ".$p_entry[message]." [".$p_entry[file].", ".$p_entry[line]."]<br>";
 448        else
 449          echo $p_entry[message]." [".$p_entry[file].", ".$p_entry[line]."]<br>";
 450      }
 451    }
 452    // --------------------------------------------------------------------------------
 453  
 454  // ----- End of double include look
 455  }
 456  ?>


Généré le : Sun Apr 1 01:23:32 2007 par Balluche grâce à PHPXref 0.7