如何使用firefox开发人员工具从PHP

时间:2017-08-18 13:37:19

标签: php firefox firefox-developer-tools chromelogger

我正在尝试切换firefox开发人员工具以进行服务器端调试,因为firebug不再使用firePHP。

查看了我发现此信息的文档:

  

像FirePHP这样的Firebug扩展允许将服务器端消息记录到   Firebug控制台。此功能已集成到   DevTools使用ChromeLogger协议,不需要任何   要安装的扩展程序。

我将Chrome记录器集成到我使用Chrome测试的PHP脚本中并确保它正常工作。 但在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(Chrome logger php脚本)进行测试

编辑:有一些奇怪的事情。有2个不同的开发人员工具,一个打开F12,没有服务器选项卡,另一个打开通过工具> Web Developer 菜单

服务器选项卡不显示有关chrome logger的信息

屏幕截图在这里:

Server option enabled

Two different Tool Boxes

3 个答案:

答案 0 :(得分:1)

截至2017年,萤火虫和firephp已被禁用。

我对chromephp工具进行了一些修改,允许从firephp无缝迁移到chromephp,以便通过控制台进行debuging。

本文以简单易懂的步骤解释

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

作为文章中细节的补充,您不需要切换到Chrome浏览器,您还可以通过firefox Web控制台的服务器选项卡查看日志

答案 1 :(得分:1)

使用Firefox 57,a.k.a. Firefox Quantum,看起来ChromePhp的服务器日志不再有效。

QuantumPHP是另一种选择。使用此工具,服务器日志和JavaScript日志都显示在“控制台”下。

https://github.com/frankforte/quantumphp

答案 2 :(得分:0)

继Kudehinbu的工作,以及我自己的工作,即重构QuantumPHP类提供https://github.com/frankforte/quantumphp,为开发人员提供更加无缝的方法和FirePHP的迁移过程,我也可以补充说,与FirePHP不同,客户端当对象是 info() warn()错误()<的参数的一部分时,渲染不会超过简洁的[object Object] / strong>方法。

要像FirePHP那样穷尽地开发对象,您可能希望使用 print_r() var_export()转换 $ args ,要么在调用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);
}

请注意,在我的重构之后, info()现在是 public 而不再是 public static ,因为我决定使用对象上下文

最后,利用公共上下文,您可能想要添加析构函数:

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

因此可以在PHP脚本最后一次调用QuantumPHP方法后系统地显式调用send方法。

客户端使用示例:

$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!