Я нашел ChromePhp, чтобы помочь с моими отладками PHP и установить соответствующий подключаемый модуль Chrome, но я не могу заставить его работать. Я первоначально поместил его в папку в своих перенаправленных htdocs и добавил, что к моему пути PHP в php.ini xampp, используя:
; Windows: "\ path1; \ path2" include_path = ".; C: \ xampp \ php \ PEAR; D: \ htdocs \ включает в себя"
Кажется, что это не работало. Я продолжал получать ошибки, подобные приведенным ниже, всякий раз, когда я пытался включить этот файл и выводил ChromePhp :: log («message»)
Предупреждение: невозможно изменить информацию заголовка – уже отправленные заголовки (вывод начался в D: \ htdocs \ ask.ca \ wp-admin \ menu-header.php: 91) в D: \ htdocs \ ask.ca \ wp-includes \ ChromePhp.php в строке 385
Итак, я попробовал аналогичный подход на моем пути к Windows с тем же результатом.
Наконец, я пошел полностью локально и попытался включить файл ChromePhp.php в свой плагин, используя:
include( dirname(__FILE__) . '/php/ChromePhp.php' ); ChromePhp::log("Hello World");
Но я все равно получаю ту же ошибку ??? Может ли кто-нибудь объяснить ABC о том, как заставить ChromePhp работать? Я говорю, что ABC, по-видимому, несмотря на то, что я читал инструкции на веб-сайте ChromePhp (и пару других людей, чтобы заставить это работать), которые очень коротки, и я думал, что это просто, мне все еще нужно разъяснить больше.
Я разработчик ChromePHP. Вы видите эту проблему, потому что вывод уже начался на странице. Как только вы услышите что-то, вы больше не можете устанавливать заголовки.
См. Этот связанный билет:
https://github.com/ccampbell/chromephp/issues/15
Я не уверен во внутренних функциях WordPress, но в основном вы должны либо регистрировать информацию до того, как какой-либо вывод был отправлен на страницу, либо вам нужно использовать буферизацию вывода, чтобы предотвратить отправку вывода, а затем сбросить буфер после вы закончили регистрацию.
Также:
http://wordpress.org/support/topic/error-cannot-modify-header-information-2
Если вы просто хотите отлаживать данные на консоли, а не на экране.
// Debug $data will display in console function console_debug( $data ) { $data = json_encode($data); echo "<script>console.dir($data)</script>"; }
Если вы не можете изменить свой код, чтобы заставить Chrome PHP работать, вы можете использовать консоль PHP . Он работает даже при выходе. Сообщения отправляются на консоль Chrome и всплывают. Вы можете настроить всплывающее меню с помощью контекстного меню правой кнопки мыши.
Без обид ChromePHP. Я также ценю то, что делают авторы ChromePHP и PHP Console.
Вы можете использовать плагин WP Chrome Logger , который основан на chromephp .
Загрузите этот плагин и активируйте его.
Используйте любую функцию (ниже в примере) для вывода чего-либо в консоли Chrome (поместите эти функции в plugin file
или functions.php
).
ChromePhp::log('Hello console!'); ChromePhp::log($_SERVER); ChromePhp::warn('something went wrong!');
Протестировано с помощью WP 3.8
это сработало для меня.
Добавьте @ в строку 378 в ChromePhp.php:
перед->
header (self :: HEADER_NAME. ':'. $ this -> _ encode ($ data));
После ->
@header (self :: HEADER_NAME. ':'. $ this -> _ encode ($ data));
Я пробовал плагин @Ravs, но не мог на всю жизнь заставить его работать. Сохранялись ошибки пути, несмотря на то, что путь был прекрасен.
После того, как вы проникли внутрь и просмотрели другие комментарии в Интернете, я взял немного более длинный маршрут, просто бросив ChromePhp.php
в тот же каталог, что и файл, и добавив
<?php ob_start(); include 'ChromePhp.php'; ... ChromePhp::log('long winded but it works'); ... ob_flush(); ?>