Gute Möglichkeit, print_r-Arrays zu erstellen

7

Sie wissen also, wie Drupal Funktionen in Modulen wie Devel hat, mit denen Sie Arrays in einem schönen Format wie dsm($array)oder krumo($array)... ausgeben können. Hat WordPress eine äquivalente oder eine schöne Art der Anzeige print_r($array)?

emc
quelle
Was ist wwrong mit var_dump () oder print_r ()? Was genau streben Sie an? (Es tut mir leid, ich kenne Druppal nicht so gut ..
krembo99
2
Mit krumo können Benutzer Arrays in eine formatierte Liste drucken, die beim Klicken erweitert wird. Anstatt überall <pre> -umhüllte print_r-Ausgaben zu haben, erhalten Sie stattdessen einige sehr schöne Dropdown-Listen. Viel schöner anzuzeigen!
emc

Antworten:

12

Ich habe ein Kint-Plugin erstellt, das wirklich gut funktioniert. Ich integriere auch in das Debug Bar Plugin. Sie können es herunterladen unter: http://wordpress.org/extend/plugins/kint-debugger/

Es gibt einige Funktionen, die Ihnen bei WordPress-spezifischen Globals helfen:

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

Zum Drucken von Arrays in einem gestalteten, zusammenklappbaren Format gehen Sie wie folgt vor.

$foo_bar = array(
    'foo' => 'bar',
    'bar' => 'oof',
    'rab' => 'foo'
);
d($foo_bar); //Styled
s($foo_bar); //Un-styled
Brian Fegter
quelle
2
Was für eine großartige Idee, Prost.
Wyck
7

Sie können Krumo mit WordPress (und wirklich jeder PHP-App) installieren und verwenden . Es gibt das Hikari Krumo-Plugin , das die Verwendung vereinfacht. Überprüfen Sie jedoch die Kommentare dort. Es gibt einen Fehler, den Sie manuell beheben müssen, damit es mit dem neuesten WP funktioniert. Es gibt auch das WordPress Debug Bar Plugin, das Sie vielleicht nützlich finden.

EDIT- Eine weitere Option, die ich kürzlich entdeckt habe, Kint ; Bildschirmfoto:

Kint Screenshot

Milo
quelle
5

Für diese Art von Sachen habe ich REF geschrieben (erfordert PHP 5.3). Neben vielen anderen Funktionen werden Inhalte von DocBlock-Kommentaren angezeigt und PHP-interne Klassen, Methoden und Funktionen verknüpft (Links verweisen auf das PHP-Handbuch). Es behandelt auch WordPress-Funktionen (Links verweisen auf queryposts.com ).

Hier ist die Ausgabe von $GLOBALSin der setupPhase von WordPress im HTML-Modus ( r($GLOBALS);in functions.php):

Geben Sie hier die Bildbeschreibung ein

Onetrickpony
quelle
2
+1 für DB-Benutzer rootund ein leeres Passwort.
Fuxia
lol hätte nie gedacht, dass WP das tatsächlich auch speichern würde :)
onetrickpony
Ein Trick, das Bild ging verloren.
brasofilo
Scheint für mich aufzutauchen. Ich habe eine neue hinzugefügt, um die letzten Aktualisierungen dieses Skripts
widerzuspiegeln
Das ist unglaublich!! SO benötigt.
emc
2

Wenn Sie nur die print_r()In- <pre>Tags einschließen, wird die Ausgabe wunderschön ausgeführt. Wenn Sie nach einer etwas besseren Diagnose suchen, sind die Black Box und die von @Milo gepostete Debug-Leiste meine Favoriten.

mor7ifer
quelle
2

Sie können auch das Plugin Debug Objects verwenden . Liste auch Skripte und Stile. Das Plugin bietet viele weitere Optionen für Entwicklung und Debugging, aber auch diese Funktion.

Alternativ ist diese Quelle, Informationen und den Beitrag zu diesem Thema finden Sie hier :

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;
    // scripts
    foreach ( $wp_scripts -> registered as $registered )
        $script_urls[ $registered -> handle ] = $registered -> src;
    // styles
    foreach ( $wp_styles -> registered as $registered )
        $style_urls[ $registered -> handle ] = $registered -> src;
    // if empty
    if ( empty( $handles ) ) {
        $handles = array_merge( $wp_scripts -> queue, $wp_styles -> queue );
        array_values( $handles );
    }
    // output of values
    $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;
}
bueltge
quelle
2

Warum nicht einfach xdebug verwenden?

Sieht für mich standardmäßig ziemlich ordentlich aus.

Geben Sie hier die Bildbeschreibung ein

Es gibt auch Kint, http://code.google.com/p/kint/, aber ich fand die Dropdowns verwirrender als die vollständige Ausgabe von xdebug.

Wyck
quelle
1
+1 Und vergessen Sie nicht, es in Ihrer php.iniDatei zu konfigurieren , um diese unangenehmen Dinge ...für verschachtelte Dinge zu vermeiden .
Kaiser