Как использовать инструменты разработчика Firefox для регистрации сообщений на стороне сервера от переполнения стека

Я пытаюсь переключить инструменты разработчика Firefox для отладки на стороне сервера, потому что firebug больше не работает с firePHP.

Проверив документацию, я нашел эту информацию:

Расширения Firebug, такие как FirePHP, позволяют регистрировать сообщения на стороне сервера в
консоль Firebug. Эта функциональность уже интегрирована в
DevTools использует протокол ChromeLogger и не требует никаких
расширения для установки.

Я интегрировал Chrome Logger в свой PHP-скрипт, протестированный с Chrome, и убедился, что он работает. Но в Firefox Dev Tools на консоли ничего не появляется. Я проверил заголовки для X-ChromeLogger-Data. Закодированные данные успешно переданы.

У кого-нибудь есть идея для решения?

Для справки developer.mozilla.org/en-US/docs/Tools/Web_Console/Console_messages#Server

Протестировано с Firefox Developer Edition 56.0b3 и ChromePhp 4.1.0 (PHP-скрипт Chrome logger)

РЕДАКТИРОВАТЬ: Есть что-то странное. Там 2 разных инструмента разработчика, один открывается с F12 и нет вкладки сервера, а другой открывается через Инструменты> Веб-разработчик меню

Вкладка сервера ничего не отображает о Chrome Logger

Скриншоты здесь:

Опция сервера включена

Два разных ящика для инструментов

1

Решение

С 2017 года firebug и, следовательно, firephp отключен.

Я написал несколько небольших изменений в инструменте chromephp, чтобы обеспечить плавный переход с firephp на chromephp для отладки через консоль.

Эта статья объясняет в простых простых шагах

https://medium.com/@kudehinbuoluwaponle/migrate-from-firephp-to-chromephp-in-5-minutes-without-breaking-existing-code-e4afd1b28c5c

В дополнение к деталям в статье вам не нужно переключаться в браузер Chrome. Вы также можете просматривать журналы через вкладку сервера веб-консоли Firefox.

1

Другие решения

В Firefox 57, то есть в Firefox Quantum, похоже, что журналы сервера из ChromePhp больше не работают.

QuantumPHP является альтернативой. С помощью этого инструмента журнал сервера и журнал JavaScript отображаются в разделе «консоль».

https://github.com/frankforte/quantumphp

1

В дополнение к работе Кудехинбу и моей собственной работе, то есть рефакторинг предоставил класс QuantumPHP. https://github.com/frankforte/quantumphp, Чтобы дать разработчикам более плавный подход и процесс перехода от FirePHP, я также могу добавить, что в отличие от FirePHP, рендеринг на стороне клиента не будет проходить через лаконичный [объектный объект], когда объект является частью аргументов Информация(), предупредить () или же ошибка() метод.

Чтобы разработать объект полностью, как это сделал FirePHP, вы можете захотеть трансформировать $ арг с помощью print_r () или же var_export (), либо перед вызовом метода вывода класса QuantumPHP, либо, что лучше, в качестве частного / защищенного преобразователя внутри самого класса.

protected function resolveObjectArgs(array &$args)
{
array_walk($args, function(&$value, $key) {
if (is_array($value)) {
$value = print_r($value, true);
}
else if(is_object($value)) {
$value = var_export($value, true);
}
else return;
});
}

Таким образом, вызывая этот преобразователь в методе вывода:

public function info()
{
$args = func_get_args();
$this->resolveObjectArgs($args); // <== this is the line to add to the existing code
return $this->_log(self::INFO, $args);
}

Обратите внимание, что после моего рефакторинга, Информация() сейчас общественности и не более публичная статика, так как я решил использовать контекст объекта.

Наконец, пользуясь общественный контекст, Вы можете добавить деструктор:

public function __destruct()
{
$this->send();
}

таким образом, экономия от явного системного вызова метода send после последнего вызова вашего сценария PHP метода QuantumPHP.

Пример использования на стороне клиента:

$QPHP = QuantumPHP::getInstance();
$Obj = new MyOwnObject();
$QPHP->info($Obj); // will eventually output a detailed structure of your object

// send() gets called magically at the end of the page!
0
По вопросам рекламы [email protected]