Metodo elegante per visualizzare array con print_r

2 feb 2012, 04:00:18
Visualizzazioni: 18.8K
Voti: 7

Sai come Drupal ha funzioni nei moduli come Devel che permettono di visualizzare gli array in un formato leggibile come dsm($array) o krumo($array)... WordPress ha un equivalente o un modo elegante per visualizzare print_r($array)?

2
Commenti

cosa c'è di sbagliato in var_dump() o print_r()? Cosa stai cercando esattamente di ottenere? (mi dispiace, non conosco così bene Drupal..

krembo99 krembo99
2 feb 2012 04:27:41

krumo permette agli utenti di stampare array in una lista formattata che si espande al click. Quindi invece di avere output print_r avvolti in <pre> ovunque, ottieni delle belle liste a discesa. Molto più gradevoli da visualizzare!

emc emc
2 feb 2012 04:36:42
Tutte le risposte alla domanda 6
1
12

Ho creato un plugin Kint che funziona davvero bene. Si integra anche con il plugin Debug Bar. Puoi scaricarlo qui: http://wordpress.org/extend/plugins/kint-debugger/

Ci sono alcune funzioni che ti aiutano con le variabili globali specifiche di WordPress:

  • dump_wp_query()
  • dump_wp()
  • dump_post()

Per stampare gli array in un formato stilizzato e collassabile, puoi fare così:

$foo_bar = array(
    'foo' => 'bar',
    'bar' => 'oof',
    'rab' => 'foo'
);
d($foo_bar); //Con stile
s($foo_bar); //Senza stile
15 feb 2012 17:41:20
Commenti

Che ottima idea, grazie.

Wyck Wyck
16 feb 2012 00:18:48
0

Puoi installare e utilizzare Krumo con WordPress (o qualsiasi applicazione PHP in realtà). Esiste il plugin Hikari Krumo che semplifica l'uso, anche se controlla i commenti lì, c'è un errore che dovrai correggere manualmente per farlo funzionare con l'ultima versione di WP. C'è anche il plugin Debug Bar per WordPress che potresti trovare utile.

EDIT - Un'altra opzione che ho scoperto recentemente, Kint; screenshot:

Screenshot di Kint

2 feb 2012 04:27:06
5

Per questo genere di cose, ho scritto REF (richiede PHP 5.3). Tra le molte altre funzionalità, mostra il contenuto dei commenti DocBlock e crea link alle classi, metodi e funzioni interne di PHP (i link puntano al manuale PHP). Gestisce anche le funzioni di WordPress (i link puntano a queryposts.com).

Ecco l'output di $GLOBALS nella fase setup di WordPress in modalità HTML (r($GLOBALS); in functions.php):

Visualizzazione dell'output di $GLOBALS in fase di setup di WordPress

4 gen 2013 00:55:31
Commenti

+1 per l'utente del database root e una password vuota.

fuxia fuxia
4 gen 2013 13:52:42

lol non avrei mai pensato che WP lo memorizzasse davvero :)

onetrickpony onetrickpony
4 gen 2013 14:01:04

Un trucco, l'immagine è mancante.

brasofilo brasofilo
2 apr 2013 18:06:29

Sembra apparire per me. Ne ho aggiunto uno nuovo per riflettere gli ultimi aggiornamenti a questo script

onetrickpony onetrickpony
2 apr 2013 19:25:54

È incredibile!! Davvero NECESSARIO.

emc emc
17 mag 2013 19:02:55
0

Se avvolgi semplicemente il print_r() nei tag <pre> verrà visualizzato in modo molto più leggibile. Se stai cercando una diagnostica un po' più avanzata, black box e la debug bar menzionata da @Milo sono le mie soluzioni preferite.

2 feb 2012 04:30:40
0

Puoi anche utilizzare il plugin Debug Objects; elenca anche script e stili. Il plugin offre molte più opzioni per sviluppatori e debug, ma anche questa funzionalità.

Un'alternativa è questa fonte, trovi informazioni e il post su questo argomento qui:

add_action('wp_footer', 'fb_urls_of_enqueued_stuff');
add_action('admin_footer', 'fb_urls_of_enqueued_stuff');
function fb_urls_of_enqueued_stuff( $handles = array() ) {
    global $wp_scripts, $wp_styles;
    // script
    foreach ( $wp_scripts -> registered as $registered )
        $script_urls[ $registered -> handle ] = $registered -> src;
    // stili
    foreach ( $wp_styles -> registered as $registered )
        $style_urls[ $registered -> handle ] = $registered -> src;
    // se vuoto
    if ( empty( $handles ) ) {
        $handles = array_merge( $wp_scripts -> queue, $wp_styles -> queue );
        array_values( $handles );
    }
    // output dei valori
    $output = '';
    foreach ( $handles as $handle ) {
        if ( ! empty( $script_urls[ $handle ] ) )
            $output .= $script_urls[ $handle ] . '<br />';
        if ( ! empty( $style_urls[ $handle ] ) )
            $output .= $style_urls[ $handle ] . '<br />';
    }
    echo $output;
}
2 feb 2012 15:35:42
1

Perché non usare semplicemente xdebug?

Sembra abbastanza pulito di default, a me.

Descrizione immagine qui

C'è anche Kint, http://code.google.com/p/kint/ ma ho trovato i menu a discesa più confusi rispetto all'output completo di xdebug.

2 feb 2012 19:22:14
Commenti

+1 E non dimenticare di configurarlo nel tuo file php.ini per evitare quei fastidiosi ... per le cose annidate.

kaiser kaiser
4 gen 2013 13:58:56