Красивый вывод массивов с помощью print_r

2 февр. 2012 г., 04:00:18
Просмотры: 18.8K
Голосов: 7

Вы знаете, как в Drupal есть функции в модулях типа Devel, которые позволяют красиво выводить массивы, например dsm($array) или krumo($array)... Есть ли в WordPress аналогичная функция или удобный способ отображения print_r($array)?

2
Комментарии

что не так с var_dump() или print_r()? чего именно ты пытаешься добиться? (извини, я не так хорошо знаю Drupal..

krembo99 krembo99
2 февр. 2012 г. 04:27:41

krumo позволяет выводить массивы в виде форматированного списка, который раскрывается по клику. Вместо вывода print_r, обернутого в <pre>, ты получаешь красивые выпадающие списки. Гораздо удобнее для отображения!

emc emc
2 февр. 2012 г. 04:36:42
Все ответы на вопрос 6
1
12

Я создал плагин Kint, который отлично работает. Он также интегрируется с плагином Debug Bar. Вы можете скачать его по ссылке: http://wordpress.org/extend/plugins/kint-debugger/

Есть несколько функций, которые помогут вам работать с глобальными переменными WordPress:

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

Для вывода массивов в стилизованном, сворачиваемом формате используйте следующий код:

$foo_bar = array(
    'foo' => 'bar',
    'bar' => 'oof',
    'rab' => 'foo'
);
d($foo_bar); //Стилизованный вывод
s($foo_bar); //Не стилизованный вывод
15 февр. 2012 г. 17:41:20
Комментарии

Какая замечательная идея, спасибо.

Wyck Wyck
16 февр. 2012 г. 00:18:48
0

Вы можете установить и использовать Krumo с WordPress (или любым другим PHP-приложением). Существует плагин Hikari Krumo, который упрощает использование, однако проверьте комментарии там - есть ошибка, которую нужно исправить вручную для работы с последней версией WP. Также есть WordPress плагин Debug Bar, который может оказаться полезным.

РЕДАКТИРОВАНО - Еще один вариант, который я недавно обнаружил - Kint; скриншот:

Скриншот Kint

2 февр. 2012 г. 04:27:06
5

Для таких задач я написал REF (требуется PHP 5.3). Помимо множества других функций, он отображает содержимое DocBlock-комментариев и создаёт ссылки на внутренние классы, методы и функции PHP (ссылки ведут на руководство PHP). Также он обрабатывает функции WordPress (ссылки ведут на queryposts.com).

Вот вывод $GLOBALS на этапе setup WordPress в HTML-режиме (r($GLOBALS); в functions.php):

Вывод глобальных переменных WordPress на этапе setup

4 янв. 2013 г. 00:55:31
Комментарии

+1 за пользователя БД root и пустой пароль.

fuxia fuxia
4 янв. 2013 г. 13:52:42

лол, никогда бы не подумал, что WP это тоже сохраняет :)

onetrickpony onetrickpony
4 янв. 2013 г. 14:01:04

Один трюк, изображение пропало.

brasofilo brasofilo
2 апр. 2013 г. 18:06:29

Кажется, отображается у меня. Я добавил новый, чтобы отразить последние обновления этого скрипта

onetrickpony onetrickpony
2 апр. 2013 г. 19:25:54

Это потрясающе!! Очень нужно.

emc emc
17 мая 2013 г. 19:02:55
0

Если просто обернуть print_r() в теги <pre>, вывод будет красиво отформатирован. Если вам нужно что-то более функциональное для диагностики, то black box и панель отладки, упомянутая @Milo, — мои основные инструменты.

2 февр. 2012 г. 04:30:40
0

Также вы можете использовать плагин Debug Objects, который также выводит список скриптов и стилей. Этот плагин предлагает множество других возможностей для разработки и отладки, включая данную функцию.

Альтернативный вариант — использовать этот исходный код (информацию и публикацию по теме можно найти здесь):

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;  
    // скрипты  
    foreach ( $wp_scripts -> registered as $registered )  
        $script_urls[ $registered -> handle ] = $registered -> src;  
    // стили  
    foreach ( $wp_styles -> registered as $registered )  
        $style_urls[ $registered -> handle ] = $registered -> src;  
    // если пусто  
    if ( empty( $handles ) ) {  
        $handles = array_merge( $wp_scripts -> queue, $wp_styles -> queue );  
        array_values( $handles );  
    }  
    // вывод значений  
    $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 февр. 2012 г. 15:35:42
1

Почему бы просто не использовать xdebug?

Выглядит довольно удобно из коробки.

Xdebug: отладка и профилирование PHP

Есть также Kint, http://code.google.com/p/kint/, но я нашел выпадающие меню более запутанными, чем полный вывод xdebug.

2 февр. 2012 г. 19:22:14
Комментарии

+1 И не забудьте настроить это в вашем файле php.ini, чтобы избежать этих неприятных ... для вложенных структур.

kaiser kaiser
4 янв. 2013 г. 13:58:56