PHP Classes

File: examples/ptcdebug-ex.php

Recommend this page to a friend!
  Classes of Carlo Pietrobattista   PHP Debugger and Logger   examples/ptcdebug-ex.php   Download  
File: examples/ptcdebug-ex.php
Role: Example script
Content type: text/plain
Description: example file
Class: PHP Debugger and Logger
Catch PHP errors and log messages
Author: By
Last change: debugger & logger example file
Date: 10 years ago
Size: 3,854 bytes
 

Contents

Class file image Download
<?php

   
/*
    * EXAMPLE FILE FOR PTCDEBUG CLASS
    */

   
session_start( ); // start session for persistent debugging and code highlighter popup

   
declare(ticks=1); // declare globally for the code coverage and function calls trace

   
$_GET[ 'debug' ] = true; // turn on the debug

    //$_GET[ 'debug_off' ] = true; // turn off debug

   
require_once( '../PtcDebug.php' ); // include the PtcDebug class

   
$options = array // add some options before class initialization
   
(
       
'url_key' => 'debug' ,
       
'url_pass' => 'true' ,
       
'die_on_error' => false ,// continue if fatal error
       
'debug_console' => true , // send messages to console, chrome only with php-console extension
   
);

   
PtcDebug::load( $options ); // initialize the class
   
   
    /* START CODE COVERAGE ANALYSIS TO CHECK WHICH LINES HAVE BEEN EXECUTED */
   
PtcDebug::startCoverage( ); // set option['code_coverage'] to "full" to check the hole application
   
   
    /* START TRACING FUNCTION CALLS */
   
PtcDebug::startTrace( ); // set option['trace_functions'] to "full" to check the hole application


    /* LOGGING A MESSAGE */
   
PtcDebug::bufferLog( 'just a message' );


   
/* LOGGING A VARIABLE WITH A STATEMENT */
   
$var = 'just a string';
   
PtcDebug::bufferLog( $var, 'testing a variable' );


   
/* LOGGING AN ARRAY TO THE MESSAGE PANEL WITH A DIFFERENT CATEGORY */
   
$array = array( 'key' => 'value' , 'key1' => 'value1' );
   
PtcDebug::bufferLog( $array , 'testing an array' , 'new category' );
   
   
   
/* LOGGING AN OBJECT */
   
PtcDebug::bufferLog( ( object ) $array , 'testing an object' );


   
/* THROWING A NOTICE */
   
trigger_error( 'some notice' , E_USER_NOTICE );


   
/* THROWING A WARNING */
   
trigger_error( 'some warning' , E_USER_WARNING );


   
/* THROWING AN ERROR */
   
trigger_error( 'some error' , E_USER_ERROR ); // continue execution with the options "die_on_error" set to false


    /* TESTING AN ERROR WITHIN A FUNCTION */
   
function some_func( ){ fopen( ); }
    echo
some_func( ); // will throw an error


    /* LOGGING SQL QUERIES AND TIMING EXECUTION */
   
$sql = 'select from where something'; // some sql query, will be used as reference
   
PtcDebug::bufferSql( '' , $sql ); // leaving the first parameter empty, can be added later with the query result
   
$sql_result = array( 'key' => 'value' , 'key1' => 'value1' ); // this should be the sql result of the sql query
   
PtcDebug::stopTimer( $sql ); // time execution, the query is used as reference
   
PtcDebug::addToBuffer( $sql , $sql_result ); // attaching the result to the message based on the reference


    /* WATCHING A VARIABLE */
   
declare(ticks=1) // declaring code block it is more precise for watching vars
   
{
       
$var = 'some test';
       
PtcDebug::watch( 'var' ); // passing the variable without the "$" symbol
       
$var = 'some new value'; // the variable changed
   
}
   
   
   
/* TIMING A LOOP */
   
PtcDebug::bufferLog( '' , 'timing a loop' ); // leaving the first parameter empty
   
for ( $i = 0; $i < 100; $i++ ){ @$a[ ] = $i; }
   
PtcDebug::stopTimer( 'timing a loop' ); // using the reference to attach the execution time to the buffer
   
   
    /* STOP CODE COVERAGE ANALYSIS */
   
PtcDebug::stopCoverage( ); // we could start it again later, if stopCoverage( ) is not used it will be stopped at shutdown
   
   
    /* STOT TRACING FUNCTION CALLS */
   
PtcDebug::stopTrace( ); // we could start it again later, if stopTrace( ) is not used it will be stopped at shutdown
   
   
    /* DOWLOAD PHP-CONSOLE FOR CHROME TO SEE MESSAGES IN CONSOLE */
   
PtcDebug::bufferLog( '' , '<span style="color:red;">**For Chrome Browser:</span>
                        <a target="_blank" href="https://chrome.google.com/webstore/detail/php-console/nfhmhhlpfleoednkpnnnkolmclajemef">
                            Download php-console</a> chrome extension to see debug output in console'
);
   
   
   
/* CATCHING AN EXCEPTION */
   
throw new Exception( 'Uncaught Exception' );
   
   
   
//session_destroy();