官方文档:https://xdebug.org/docs/upgrade_guide
升级指南,详细介绍了Xdebug 2和3之间的哪些更改,以及如何重新配置您的设置以执行类似的操作。
新概念#
与Xdebug 2不同,在Xdebug 2中,每个功能都有一个启用设置,使用Xdebug 3,您可以将Xdebug置于特定 模式下,可以使用xdebug.mode设置对其进行配置。
此设置与xdebug.start_with_request结合使用是启用功能以及配置Xdebug功能激活时间的新方法。
其背后的想法是,重要的是Xdebug仅具有实际需要的功能的开销。例如,同时激活“分析”和“步骤调试”是没有意义的。
除了使用xdebug.mode设置模式外,还可以使用XDEBUG_MODE环境变量来设置模式 。如果此环境变量处于活动状态,它将覆盖通过xdebug.mode设置的模式。
请注意,必须在PHP进程启动时设置该模式,因此与它替换的Xdebug 2中的设置不同,您不能在每个请求(例如.htaccess或)上加载的配置文件中对其进行设置 .user.ini。
确保仅启用了“步骤调试”,而不是:
xdebug.remote_enable = 1
xdebug.default_enable = 0
xdebug.profiler_enable = 0
xdebug.auto_trace = 0
xdebug.coverage_enable = 0
您现在只能这样做:
xdebug.mode =调试
或者,在命令行上:
导出XDEBUG_MODE =调试
PHP脚本名称.php
您可以使用新的xdebug_info()函数查看Xdebug的配置。其输出还将包括有关调试连接尝试和文件权限的其他诊断信息。
步调试#
Xdebug的默认调试端口已从更改 9000为9003。
在命令行上激活
不必将XDEBUG_CONFIG环境变量设置为 idekey=yourname,而必须将其设置XDEBUG_SESSION为 yourname:
导出XDEBUG_SESSION = xdebug_is_great
自动启动调试器
该xdebug.remote_autostart设置已被删除。而是将xdebug.start_with_request设置为yes。
在请求期间启动调试器
在Xdebug 3中,仅当xdebug.start_with_request设置为时,调用xdebug_break()才会启动调试会话。trigger
当xdebug.start_upon_error = yes(替代Xdebug 2 xdebug.remote_mode=jit)时,它将不再触发调试会话 。
当xdebug.start_upon_error设置为时yes,无论xdebug.start_with_request的值是什么,都会在PHP通知或警告或抛出Throwable时启动调试会话。
变更后的功能特性#
xdebug_break()
当xdebug.start_upon_error设置为yes(Xdebug 2的替代品 xdebug.remote_mode=jit)时,此函数将不再启动调试会话 。
当xdebug.start_with_request设置为时,它仍将启动调试请求trigger。
更改后的配置设置#
Xdebug 3已删除并更改了许多配置设置。本节列出了已删除的设置及其替换。
xdebug.auto_trace #
将xdebug.mode =trace与xdebug.start_with_request =一起使用yes。
xdebug.collect_includes #
已被删除。文件名include()和 require()现在总是包含在发展援助和 功能跟踪输出。
xdebug.collect_params #
已被删除。现在,在“开发辅助工具”和“ 功能跟踪”输出中,带有变量内容和参数名称的参数现在始终可见。
xdebug.collect_vars #
已被删除,它仅与该xdebug_get_declared_vars()功能结合使用,该 功能也已被删除。
xdebug.coverage_enable #
使用xdebug.mode = coverage。
xdebug.default_enable #
使用xdebug.mode = develop。
xdebug.extended_info #
无补发。Xdebug会在需要时自动打开此PHP引擎设置。
xdebug.gc_stats_enable #
使用xdebug.mode = gcstats。
xdebug.gc_stats_output_dir #
使用通用的xdebug.output_dir设置。
xdebug.overload_var_dump #
已被删除。var_dump()现在,当设置 为时, PHP总是通过xdebug_var_dump()重载。所述xdebug_var_dump()函数是可用的独立一个被配置模式。xdebug.modedevelop
xdebug.profiler_enable #
使用xdebug.mode = profile。
xdebug.profiler_enable_trigger #
将xdebug.mode =profile与xdebug.start_with_request =一起使用trigger。
xdebug.profiler_enable_trigger_value #
使用通用的xdebug.trigger_value设置。
xdebug.profiler_output_dir #
使用通用的xdebug.output_dir设置。
xdebug.remote_addr_header #
替换为xdebug.client_discovery_header。
xdebug.remote_autostart #
将xdebug.mode =debug与xdebug.start_with_request =一起使用yes。
xdebug.remote_connect_back #
替换为xdebug.discover_client_host。
xdebug.remote_enable #
使用xdebug.mode = debug。
xdebug.remote_handler #
无补发。Xdebug的步骤调试器仅支持DBGp处理程序。
xdebug.remote_host #
替换为xdebug.client_host。
xdebug.remote_log #
由xdebug.log代替,xdebug.log还包括Step Debugging之外的日志消息。
xdebug.remote_log_level #
替换为xdebug.log_level。
xdebug.remote_mode #
对于req值(原始默认值),请使用 xdebug.mode =debug和 xdebug.start_with_request = trigger。如果xdebug.remote_autostart必须采取原始 行为,请使用 xdebug.start_with_request =yes代替trigger。
对于该jit值,请使用xdebug.mode =debug和 xdebug.start_upon_error = yes。
xdebug.remote_port #
替换为xdebug.client_port。
默认值也已从更改9000为9003。
xdebug.remote_timeout #
替换为xdebug.connect_timeout_ms。
xdebug.show_mem_delta #
已被删除。可以通过将当前帧中的使用情况与前一帧中的使用情况进行比较来计算内存使用情况的差异。
xdebug.trace_output_dir #
使用通用的xdebug.output_dir设置。
xdebug.trace_enable_trigger #
将xdebug.mode =trace与xdebug.start_with_request =一起使用trigger。
xdebug.trace_enable_trigger_value #
使用通用的xdebug.trigger_value设置。
更改功能#
xdebug_disable()
已被删除。
为了防止Xdebug显示堆栈跟踪,请不要develop在xdebug.mode中配置Xdebug的模式,也不要 关闭PHP的 html_errorsINI设置。
xdebug_enable()
已被删除。
要将Xdebug配置为显示堆栈跟踪,请包含 develop在xdebug.mode中。
xdebug_get_declared_vars()
已被删除。
可以通过xdebug_get_function_stack()函数获取此函数返回的信息 。
xdebug_is_enabled()
已被删除,但从未得到过原始记录或支持。
改变常量#
以下常量已更改:
XDEBUG_PATH_WHITELIST
就是现在: XDEBUG_PATH_INCLUDE
XDEBUG_PATH_BLACKLIST
就是现在: XDEBUG_PATH_EXCLUDE
XDEBUG_NAMESPACE_WHITELIST
就是现在: XDEBUG_NAMESPACE_INCLUDE
XDEBUG_NAMESPACE_BLACKLIST
就是现在: XDEBUG_NAMESPACE_EXCLUDE
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)