Я пытаюсь переключить инструменты разработчика 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
Скриншоты здесь:
С 2017 года firebug и, следовательно, firephp отключен.
Я написал несколько небольших изменений в инструменте chromephp, чтобы обеспечить плавный переход с firephp на chromephp для отладки через консоль.
Эта статья объясняет в простых простых шагах
В дополнение к деталям в статье вам не нужно переключаться в браузер Chrome. Вы также можете просматривать журналы через вкладку сервера веб-консоли Firefox.
В Firefox 57, то есть в Firefox Quantum, похоже, что журналы сервера из ChromePhp больше не работают.
QuantumPHP является альтернативой. С помощью этого инструмента журнал сервера и журнал JavaScript отображаются в разделе «консоль».
В дополнение к работе Кудехинбу и моей собственной работе, то есть рефакторинг предоставил класс 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!