Jump to content

[UTY] Una classe per il debug


vinoalvino

Recommended Posts

Ho scritto 27 righe di codice che possono far risparmiare 27 mesi a tutti coloro che sviluppano o modificano moduli. Si tratta di una classe (Debug.php) da aggiungere nella cartella /prestashop/classes. Il suo utilizzo è banale, ecco un esempio:

Debug::msg("sono dentro la funzione Pippo() e la variabile i vale '$i'");



E' possibile anche passare un array che verrà riconosciuto e stampato:

$tags = Tag::getMainTags($lang,500);
Debug::msg($tags);



Ogni chiamata aggiunge il messaggio passato ad un file (io l'ho definito come /prestashop/_debug.txt, ma non ci vuole nulla a cambiargli posto).

Con un secondo parametro opzionale è possibile azzerare (svuotare) il file _debug.txt prima di aggiungere il messaggio:

Debug::msg($tags,TRUE);



Questo è il sorgente della classe

<?php

/**
 * Debug class, Debug.php
 *
 * @author Vinoalvino 
 * @copyright Vinoalvino
 * @license http://www.opensource.org/licenses/osl-3.0.php Open-source licence 3.0
 * @chi volesse l'iban per pagarmi una birra lo chieda pure senza vergogna ;-)
 * @version 1.3
 *
 */

class Debug 
{
   public function msg($msg, $clear=FALSE){
       if( !$handle = fopen(_PS_ROOT_DIR_ ."/_debug.txt", ($clear ? "w" : "a") ) ) return;
       $log = date("[d-M-Y H:i:s]") ;
       if( is_array($msg) ) {
           fwrite($handle, "$log: array start ------\n");
           fwrite($handle, print_r($msg,TRUE) );
           fwrite($handle, "$log: array end ------\n");
       }
       else fwrite($handle, "$log: $msg\n");
       fclose($handle);
   }
}
?>




Questo è un esempio di file _debug.txt

[23-Apr-2010 13:13:07]: dentro loop i vale '3'
[23-Apr-2010 13:13:07]: dentro loop i vale '4'
[23-Apr-2010 13:13:08]: dentro loop i vale '5'
[23-Apr-2010 13:13:08]: esce correttamente i vale '5'
[23-Apr-2010 13:18:18]: array start ------
Array
(
   [0] => 
   [999] => E
   [1] => W
   [2] => E
   [3] => W
   [4] => E
   [5] => W
   [6] => E
   [DBT_IMG_CAT_NOTACTIVE] => W
   [DBT_IMG_SCE_NOTFOUND] => E
   [DBT_IMG_SCE_NOTACTIVE] => W
)
[23-Apr-2010 13:18:18]: array end ------




Installazione: scompatta lo zip nella cartella Classes e inizia a debuggare.

Debug.zip

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...