【问题标题】:How to trigger only the profiler on Xdebug with no config change如何仅在 Xdebug 上触发探查器而不更改配置
【发布时间】:2022-11-12 12:38:34
【问题描述】:

Xdebug 正在使用我的容器。我可以使用调试器单步执行代码。

我在 xdebug.ini 中有以下设置:

xdebug.client_host=host.docker.internal
xdebug.discover_client_host=0
xdebug.mode=develop,debug
xdebug.start_with_request=trigger
xdebug.idekey=PHPSTORM
xdebug.output_dir=/app

当我想在到达端点时触发 xdebug 时,我只需添加:

?XDEBUG_SESSION_START=PHPSTORM

在 CLI 我做:

export XDEBUG_TRIGGER=1

然后调用 a 脚本。

现在我的问题是如何在不更改 xdebug ini 中的任何内容的情况下触发分析器。 只需进行一次一次性会话,探查器会在其中生成缓存研磨文件。 我尝试将XDEBUG_TRIGGER=profile 添加到查询字符串但没有结果。

注意,我知道我可以去ini添加profile到xdebug.mode=develop,debug,profile(将配置文件添加到列表中),重新启动容器,然后生成缓存研磨。

我真正要问的是如何通过一些环境变量来做到这一点,需要更改任何设置或重新启动服务器。

【问题讨论】:

    标签: php-8 xdebug-3


    【解决方案1】:

    对于 http,it seems what you are asking (not changing a setting or restarting the server) is impossible:

    此设置只能在 PHP 进程启动时(直接或通过 php-fpm)读取的 php.ini 或 99-xdebug.ini 之类的文件中设置,但不能在 .htaccess 和 .user.ini 文件中设置,它们是按请求阅读。

    对于 CLI,您可以挂载一个 xdebug.ini 文件并编辑它来更改模式,并且您不必重新启动任何东西,这仍然违反了您为此问题设置的约束。

    编辑:您似乎可以在 CLI 中使用XDEBUG_MODE:

    您还可以通过在命令行中设置 XDEBUG_MODE 环境变量来设置 Xdebug 的模式;这将优先于 xdebug.mode 设置,但不会更改 xdebug.mode 设置的值。

    【讨论】:

      猜你喜欢
      • 2011-01-18
      • 2011-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-12
      • 1970-01-01
      • 2020-04-26
      • 2021-05-04
      相关资源
      最近更新 更多