Scrivere applicazioni web con Drupal è ormai una realtà ed il CMF guadagna ogni giorno piu consensi sia tra gli sviluppatori, che tra gli utilizzatori.
Drupal come framework di sviluppo tende a nascondere bene cosa avviene al suo interno ed è quindi molto importante conoscere il modulo devel (un modulo non core) che è pensato per gli sviluppatori ed i themer che lavorano con Drupal.
Questa guida è pensata come una panoramica alle funzioni di debugging di Devel che rendono piu agevole lo sviluppo delle nostre applicazioni.
Il modulo Devel
Il modulo devel è cosi composto:
- Devel
Questo è il modulo principale oltre a contenere tutte le funzioni di debug che vedremo sotto è la libreria base per i moduli gregari.
Se configurato opportunamente questo modulo rende disponibile la lista delle query impiegate nella creazione della pagina ed i relativi tempi di esecuzione. Il modulo ci comunica inoltre l'ammontare di memoria RAM impegata ed il tempo di generazione dell'intera pagina. - Devel generate
Questo modulo serve per generare contenuti in maniera automatica, nativamente supporta la creazione di nodi, commenti, voci di tassionomia e utenti. La generazione casuale di contenuti è molto utile per predisporre piattaforme popolose per i test di performance.
- Devel node access
Questo modulo aggiunge dei tab e dei blocchi che contengono informazzioni utili al debug dell'acesso ai nodi. Il suo utilizzo tipico è nello sviluppo di moduli di acesso ai contenuti come taxonomy access o nella creazione di nodi custom con politiche di accesso esotiche.
- Performance Logging
Questo componente raccoglie le statistiche sul tempo di esecuzione e sull'utilizzo di ram del sito per proporcelo in semplici report.
- Theme developer
Il componente è essenziale per chi sviluppa sui temi di drupal perchè indentifica il file responsabile del render di ogni singolo componente della pagina. L'interfaccia di introspezione è un comodo componente javascipt.
Le funzioni
dpm($input, $name = NULL)
La funzione stampa il dump della variabile con var_dump nello spazio dei messaggi di drupal. La visualizzazione tramite Krumo agevola le lettura grazie ad una moderna interfaccia Java Sript non intrusiva.
Il secondo parametro è opzionale e serve a distingure piu esecuzioni successive della funzione.
La funzione ha un alias come dsm() ma gli sviluppatori pensano che dpm sia meglio.
dvm($input, $name = NULL)
La funzione stampa il dump della variabile con var_dump nello spazio dei messaggi di drupal. La visualizzazione è testuale Il secondo parametro è opzionale e serve a distingure piu esecuzioni successive della funzione.
dpr($input, $return = FALSE, $name = NULL)
La funzione stampa il dump con la funzione php print_r e mette l'output nella pagina, è utile se il tuo tema non stampa a video i messaggi.
Il secondo parametro è utile se si vuole catturare il messaggio invece di mandarlo direttamente in stampa.
Il terzo parametro è opzionale e serve a distingure piu esecuzioni successive della funzione.
La funzione stampa output solo se l'utente ha i privilegi necessari, quindi è possibile utilizzarla anche in ambienti in produzione (con le dovute cautele).
dvr($input, $return = FALSE, $name = NULL)
La funzione stampa il dump con la funzione php var_dump e mette l'output nella pagina, è utile se il tuo tema non stampa a video i messaggi.
Il secondo parametro è utile se si vuole catturare il messaggio invece di mandarlo direttamente in stampa.
Il terzo parametro è opzionale e serve a distingure piu esecuzioni successive della funzione.
kpr($input, $return = FALSE, $name = NULL)
La funzione ha le stesse caratteristiche di dvr ma l'output è formattato con Krumo.
La funzione è un alias di kprint_r() che viene definita dagli sviluppatori una funzione contro il diffondersi del tunnel carpale.
dargs()
La funzione ritorna il var_dump dei parametri passati alla funzione di interesse, detto in latre parole serve a capire cosa drupal passa alla funzione in esame.
dd()
La funzione è una alias di drupal_debug() e serve per loggare tutti i cambiamenti di stato di una variable in un file chiamato drupal_debug.txt posto nella directory temp del sito.
ddebug_backtrace()
La funzione ritorna lo stack delle funzioni richiemate.
db_queryd()
La funzione stampa nell'header della pagina la query passata con i relativi parametri completati e mostra l'errore sql ritornato dal server.
- Accedi per poter commentare
Finalmente un howto che
Finalmente un howto che spiega come fare il debug in maniera sensata .... Uccio sei sempre il migliore :D
La funzione è un alias di
La funzione è un alias di kprint_r() che viene definita dagli sviluppatori una funzione contro il diffondersi del tunnel carpale.
Ahah, stavo morendo dal ridere quando ho letto il commento sopra kpr :)
Ottima guida uccio ;)