Login   Register  
PHP Classes
elePHPant
Icontem

File: examples/ptcdebug-ex.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  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: 2013-12-10 06:58
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();