标签: xdebug

如何跟踪 PHP 中的变量变化

再会。

我一直在研究包含许多变量和会话的项目,其中大部分工作是在“幕后”和通过 ajax 完成的。

问题是我尝试调试我的项目,但我找不到任何方法来跟踪和记录对某个变量所做的更改。

我一直在尝试使用 firephp 和 xdebug,但它们不显示何时对变量进行了更改,仅显示其最终值。

有什么解决办法吗?

php debugging xdebug firephp

5
推荐指数
1
解决办法
2209
查看次数

在 PhpStorm 中调试特定的 URL-Route

我在本地 MAMP 服务器上的 PhpStorm(包括 Xdebug)中使用 Laravel 启动了一个新项目。这个 Laravel 的入口点是localhost/project/public/index.php,我可以通过向运行/调试配置添加一个新的 PHP Web 应用程序来轻松调试。

但是让我们说,我想调试一个特定的路由,比如localhost/project/public/users/get/1. 我不知道在调试器中的何处添加此路由。我知道如何在 Eclipse 中执行此操作,但在 PhpStorm 中找不到设置(但我必须使用 PhpStorm)

当我尝试直接在“文件”输入字段中输入它时,它会因“文件未指定或无效”而失败,将路由添加到“参数”字段也不起作用。

任何帮助,将不胜感激。

php debugging xdebug phpstorm laravel

5
推荐指数
0
解决办法
1647
查看次数

我如何在 symfony 控制器中使用 Kint Debugger

我正在尝试使用这个

https://github.com/barelon/CgKintBundle https://github.com/raveren/kint

用于调试

现在我可以在 TWIG 模板中看到调试,但我不知道如何使用

https://github.com/raveren/kint#installation-and-usage

在 symfony php 类中。

require '/kint/Kint.class.php';

########## DUMP VARIABLE ###########################
Kint::dump($GLOBALS, $_SERVER); // any number of parameters
// or simply use d() as a shorthand:
d($_SERVER);
Run Code Online (Sandbox Code Playgroud)

我需要在 symfony 的控制器中添加此代码吗

php debugging xdebug symfony

5
推荐指数
1
解决办法
1144
查看次数

PhpStorm 没有与 xdebug 的传入连接(nginx / php-fpm)

我想我会尝试使用 nginx 而不是 Apache 并查看它是如何工作的,并且我已经启动并运行了,但是为了我的生活,我无法弄清楚如何让 PhpStorm 捕获传入的 xdebug 连接。当我运行 Apache 时,它​​运行良好。

通常,你会在 PhpStorm 中得到一个“传入连接”窗口——这个窗口现在因它的缺失而发光——是的;我已经阅读了 StackOverflow 上的每一个 PhpStorm/Xdebug 问题,但都没有解决我的问题。

配置:操作系统:OSX Mavericks PhpStorm 版本:7.1 Xdebug 版本:2.2.5

请注意,我正在运行 nginx 和 PHP,通过php-fpm它们按预期工作。我已经指出了与 php-fpm 运行到 PhpStorm 相同的 PHP 文件,它成功地找到了 Xdebug 作为调试器。

由于php-fpm像 Xdebug 一样运行端口 9000,我已将其更改为 9900 和 9001(两者都尝试过)并确保检查我phpinfo()的服务器是否已使用它更新了 php.ini 配置,并且我已经检查过我已经更新了 PhpStorm 中的 Xdebug 端口。我还在 PhpStorm 中启用了“开始侦听调试连接”。

来自 php.ini 的 Xdebug 配置:

[xdebug]
zend_extension = /usr/local/Cellar/php55/5.5.14/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so
xdebug.auto_trace=0
xdebug.default_enable=1
xdebug.idekey="PHPSTORM"
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=0
xdebug.profiler_output_dir="/tmp"
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_mode=req
xdebug.remote_port=9001
Run Code Online (Sandbox Code Playgroud)

如前所述 - 当我 …

php xdebug nginx

5
推荐指数
1
解决办法
6465
查看次数

php 使用 Xdebug 调试时由对等方重置的连接

在尝试了几件事无济于事后,我决定发布。希望有人经历过同样的事情并为我解答。

我收到此错误:recv() failed (104: Connection reset by peer)尝试在 magento 1.9.1 上向购物车添加内容时从上游读取响应标头,这仅在以下情况下发生:

  • xdebug 正在运行
  • 启用 ioncube 扩展

一旦我停止 xdebug 一切正常,或者如果禁用 ioncube 扩展并保持 xdebug 运行它也可以工作。

我的设置:Nginx + php-fpm 5.5.9 我正在使用套接字:/var/run/php-fpm.sock

有没有办法克服这个问题?

php xdebug nginx ioncube magento-1.9

5
推荐指数
0
解决办法
592
查看次数

在 simplexmlelement 上 foreach 中的无限循环

我面临一个特殊的问题,因为我没有找到太多参考资料。我发现simpleXMLElement 属性和 foreach描述了同样的问题,但一年没有答案,也没有任何答案。

对于一些上下文,我正在尝试使用PHPOffice/PHPExcel,并且在加载xlsx文件时,此框架simplexmlelement在 364 到 376 行上循环Excel2007.php,可在https://github.com/PHPOffice/PHPExcel/blob/1.8/Classes /PHPExcel/Reader/Excel2007.php,这里提取了其中的几行(我添加了 var_dump 和 echo):

foreach ( $colourScheme as $k => $xmlColour ) {
    var_dump ( $xmlColour ); echo 'NEWVAR';
    $themePos = array_search ( $k, $themeOrderArray );
    if (! $themePos) {
        $themePos = $themeOrderAdditional ++;
    }
    if (isset ( $xmlColour->sysClr )) {
        $xmlColourData = $xmlColour->sysClr->attributes ();
        $themeColours [$themePos] = $xmlColourData ['lastClr'];
    } elseif (isset ( $xmlColour->srgbClr )) {
        $xmlColourData = $xmlColour->srgbClr->attributes …
Run Code Online (Sandbox Code Playgroud)

php foreach xdebug infinite-loop

5
推荐指数
1
解决办法
820
查看次数

Xdebug-profiler 和 Xdebug-tracer 的区别

Xdebug 分析器和跟踪器有什么区别?有吗?

我知道它们有不同的设置,但我想知道它们在功能方面的区别。

php xdebug xdebug-profiler

5
推荐指数
0
解决办法
540
查看次数

Docker 和 XDebug 不读取断点 VSCode

过去 6 个月,我一直在 MAC 上使用 XDebug 和 PHP 版本 7.0.*,使用远程调试到 Docker 容器。

我正在运行一个旧版本的 docker,它使用 VirtualBox 到 VM for docker,一切正常。

我最近将 docker 更新到了 17.03.1 版,但除了 xDebug 问题之外什么都没有。我已经通过他的存储库中的问题联系了 vscode-php-debug 的创建者,然后他指示我用 xdebug 或 docker 来解决这个问题。

我的问题如下:

XDebug 正在运行并在我的容器上工作,xdebug 日志显示它连接到我的 IDE,但是当我在 VSCode 中设置断点时,它只是关闭连接,就好像没有断点一样。

我在 vscode-php-debug 上发布的问题可以在这里找到

其中有我的 xDebug 日志和 VSCode 调试日志的副本......它表明连接已建立但没有断点被击中。

我已经阅读了一些博客,docker 现在需要为连接到 xdebug 的连接创建一个环回 ip,我也尝试过但失败了。

在使用了这么久之后,我发现在没有调试器的情况下进行调试非常困难。

我尝试了许多配置,重新安装、重新启动、重建图像/容器,甚至在 freenode 上尝试了 docker 和 xdebug irc 频道,但没有任何成功。

php debugging xdebug docker

5
推荐指数
1
解决办法
4738
查看次数

从上游读取响应头时,XDebug 无法打开远程调试文件“/var/log/xdebug.log”

我正在使用 docker 进行开发,在我的磁盘上没有剩余空间之前,它完全没有任何问题(我的 Ubuntu 分区只有 30G)。所以我删除了所有不再运行/使用并且有足够空间的容器和图像。

再次启动我的应用程序后,我现在收到ContextErrorException以下消息

Warning: Header may not contain more than a single header, new line detected

当我查看error.log,这是内容

2017/04/29 12:53:13 [error] 13#13: *1 FastCGI sent in stderr: "PHP message: XDebug could not open the remote debug file '/var/log/xdebug.log'" while reading response header from upstream, client: 172.17.0.1, server: app, request: "GET /admin/dashboard HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost:8080"
2017/04/29 12:53:24 [error] 13#13: *1 FastCGI sent in stderr: "PHP message: XDebug could not open the remote …
Run Code Online (Sandbox Code Playgroud)

php xdebug docker

5
推荐指数
0
解决办法
6876
查看次数

Guzzle 发布嵌套数组问题

我使用 Laravel 5.5 和 Guzzle 6.3 开发网站。

我在尝试使用 API 为 BOX 创建文件夹时尝试大量发布嵌套数组时遇到问题。

$url = $this->api_url . "/folders";
$headers = [
    'Authorization' => 'Bearer ' . $this->access_token,        
];
$client = new Client();
$response = $client->post($url, [
    'headers' => $headers, 
    'form_params' => [
        'name' => $name,
        'parent' => [
            'id' => $parent_id
        ]
    ]
]);
Run Code Online (Sandbox Code Playgroud)

它向我显示了这样的错误:

实体主体应该是正确嵌套的资源属性名称/值对

我也已经尝试过使用shell_execcurl 所以它从命令提示符运行 curl 它给了我同样的错误

图片

但是当我尝试从 cygwin 运行时,curl 工作正常。

我也可以使用多部分请求嵌套数组进行上传工作正常。

当嵌套数组在多部分请求中正常工作时,我不知道为什么会遇到此嵌套数组问题。

Box 文档 POST 的参考在这里

curl xdebug laravel guzzle

5
推荐指数
1
解决办法
1620
查看次数