Modalitate elegantă de a afișa array-uri cu print_r

2 feb. 2012, 04:00:18
Vizualizări: 18.8K
Voturi: 7

Știi cum în Drupal există funcții în module precum Devel care permit afișarea array-urilor într-un format prietenos, precum dsm($array) sau krumo($array)... Există o alternativă în WordPress sau o modalitate mai elegantă de a afișa print_r($array)?

2
Comentarii

ce este în neregulă cu var_dump() sau print_r()? la ce anume țintești? (îmi pare rău, nu cunosc atât de bine Drupal..

krembo99 krembo99
2 feb. 2012 04:27:41

krumo permite utilizatorilor să afișeze array-uri sub forma unei liste formatate care se extinde la click. Deci în loc să ai output-ul print_r înfășurat în <pre> peste tot, obții niște liste drop-down foarte elegante. Mult mai plăcut la vizualizat!

emc emc
2 feb. 2012 04:36:42
Toate răspunsurile la întrebare 6
1
12

Am creat un plugin Kint care funcționează foarte bine. Se integrează și cu plugin-ul Debug Bar. Îl poți descărca de la: http://wordpress.org/extend/plugins/kint-debugger/

Există câteva funcții care te ajută cu variabilele globale specifice WordPress:

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

Pentru a afișa array-uri într-un format stilizat și collapsibil, poți face următoarele:

$foo_bar = array(
    'foo' => 'bar',
    'bar' => 'oof', 
    'rab' => 'foo'
);
d($foo_bar); //Stilizat
s($foo_bar); //Ne-stilizat
15 feb. 2012 17:41:20
Comentarii

Ce idee minunată, sănătate!

Wyck Wyck
16 feb. 2012 00:18:48
0

Puteți instala și utiliza Krumo cu WordPress (sau orice altă aplicație PHP). Există plugin-ul Hikari Krumo care simplifică utilizarea, dar verificați comentariile de acolo, există o eroare pe care va trebui să o reparați manual pentru a funcționa cu ultima versiune de WP. Există și plugin-ul WordPress Debug Bar care v-ar putea fi util.

EDIT - O altă opțiune pe care am descoperit recent, Kint; captură de ecran:

Captură de ecran Kint

2 feb. 2012 04:27:06
5

Pentru acest gen de lucruri, am scris REF (necesită PHP 5.3). Printre multe alte caracteristici, afișează conținutul comentariilor DocBlock și transformă în linkuri clasele, metodele și funcțiile interne PHP (linkurile trimit către manualul PHP). De asemenea, gestionează funcțiile WordPress (linkurile trimit către queryposts.com).

Iată rezultatul $GLOBALS în etapa setup a WordPress în modul HTML (r($GLOBALS); în functions.php):

Rezultatul variabilei globale în etapa de inițializare WordPress

4 ian. 2013 00:55:31
Comentarii

+1 pentru utilizatorul de bază de date root și o parolă goală.

fuxia fuxia
4 ian. 2013 13:52:42

lol nu m-am gândit niciodată că WP ar stoca și asta :)

onetrickpony onetrickpony
4 ian. 2013 14:01:04

Un truc, imaginea a dispărut.

brasofilo brasofilo
2 apr. 2013 18:06:29

Pare să apară pentru mine. Am adăugat unul nou pentru a reflecta ultimele actualizări ale acestui script

onetrickpony onetrickpony
2 apr. 2013 19:25:54

Este incredibil!! Era NEVOIE neapărată.

emc emc
17 mai 2013 19:02:55
0

Dacă doar înfășurați print_r() în tag-uri <pre>, va afișa frumos. Dacă căutați o diagnosticare puțin mai bună decât aceasta, cutia neagră și bara de depanare postate de @Milo sunt opțiunile mele preferate.

2 feb. 2012 04:30:40
0

De asemenea, poți folosi pluginul Debug Objects; listează și scripturile și stilurile. Pluginul are multe alte opțiuni pentru dezvoltare și depanare, dar și această funcționalitate.

Alternativă este această sursă, găsești informații și postarea despre acest subiect aici:

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;
    // scripturi
    foreach ( $wp_scripts -> registered as $registered )
        $script_urls[ $registered -> handle ] = $registered -> src;
    // stiluri
    foreach ( $wp_styles -> registered as $registered )
        $style_urls[ $registered -> handle ] = $registered -> src;
    // dacă este gol
    if ( empty( $handles ) ) {
        $handles = array_merge( $wp_scripts -> queue, $wp_styles -> queue );
        array_values( $handles );
    }
    // afișare 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

De ce să nu folosești direct xdebug?

Mi se pare destul de elegant în mod implicit.

captură de ecran xdebug

Există și Kint, http://code.google.com/p/kint/ dar am considerat meniurile derulante mai confuze decât afișajul complet al xdebug.

2 feb. 2012 19:22:14
Comentarii

+1 Și nu uita să o configurezi în fișierul tău php.ini pentru a evita acele enervante ... pentru elementele imbricate.

kaiser kaiser
4 ian. 2013 13:58:56