php - Xdebug跟踪功能如何排除供应商目录
问题描述
我正在使用 Xdebug 来分析我的 Laravel 代码。我使用跟踪和覆盖功能。
对于覆盖范围,我可以配置白名单和排除来配置我要分析的目录和文件。
但是对于trace,我不知道如何配置排除目录。像vendor
,我认为它们没有变化,所以我想排除它们。我只想专注于我的代码。
您知道如何配置跟踪排除或黑名单吗?
<?xml version="1.0" encoding="UTF-8" ?>
<phpunit backupGlobals="true" colors="true" convertErrorsToExceptions="true"
convertNoticesToExceptions="true" convertWarningsToExceptions="true" stopOnFailure="false">
<filter>
<whitelist processUncoveredFilesFromWhitelist="false" addUncoveredFilesFromWhitelist="false">
<directory suffix=".php">./../</directory>
<exclude>
<directory suffix=".php">./../vendor</directory>
</exclude>
</whitelist>
<blacklist>
</blacklist>
</filter>
</phpunit>
解决方案
要从跟踪中删除东西,您可以使用 Xdebug 的xdebug_set_filter()函数。手册中有一个例子,内容如下:
要排除跟踪中供应商子目录中的所有文件:
例子:
<?php xdebug_set_filter( XDEBUG_FILTER_TRACING, XDEBUG_PATH_BLACKLIST, [ __DIR__ . "/vendor/" ] ); ?>
您需要 Xdebug 2.6 或更高版本才能正常工作。你可以把它放在你的index.php
脚本中,或者放在一个auto_prepend脚本中。/vendor/
唯一重要的注意事项是,在执行文件夹中的包含/调用之前需要运行此行。
FWIW,在 Xdebug 3 中,XDEBUG_PATH_BLACKLIST
将重命名为XDEBUG_PATH_EXCLUDE
.
推荐阅读
- kubernetes - 我可以部署依赖于自定义资源状态的 Kubernetes 工作负载吗?
- mysql - 来自相同版本 mysql 的 mysqldump 导致使用的表类型不支持 FULLTEXT 索引
- python - Python命运之轮接受全词
- linux - 无法执行二进制文件 Linux - 没有这样的文件或目录
- sql-server - 如何在 SingleOrg MVC ASP.NET Core Web 应用程序中集成其他登录类型
- c++ - 在同一解决方案中的两个项目之间通过 TCP 套接字实时流式传输 C++ 结构数据的最佳方式是什么?
- intellij-idea - 如何在 Pycharm/Intellij Diff and Merge 中禁用所有代码折叠
- android - 如何解决在构建 APK 时出现在 Gradle 中的未知主机“cm.crashlytics.com”问题?
- reactjs - 从打字稿文件中的“react-leaflet”将“onClick”功能添加到 MapContainer
- erlang - 来自 rebar get-deps 的版本不匹配错误