<?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();
|