You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swagger-php如何启用verbose模式查看搜索路径验证排除规则?

验证Swagger-php排除目录规则的生效方法

要查看Swagger-php扫描时的文件路径,验证排除规则是否生效,可以用以下两种简单方法:

方法一:启用调试日志

Swagger-php支持传入日志实例,设置DEBUG级别后就能输出扫描细节,包括哪些文件被扫描、哪些被排除。

先确保安装了Monolog(未安装的话执行composer require monolog/monolog),然后使用下面的代码:

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// 初始化日志,直接输出到控制台
$logger = new Logger('swagger-scan');
$logger->pushHandler(new StreamHandler('php://stdout', Logger::DEBUG));

$openapi = \OpenApi\scan('./myfolder', [
    'exclude' => ['/vendor/', '/node_modules/', '/migrations/'],
    'logger' => $logger,
]);

运行代码后,控制台会打印出类似Scanning file: ./myfolder/src/xxx.php或Excluding file: ./myfolder/vendor/xxx.php的日志,直接就能确认排除规则是否生效。

方法二:自定义文件处理回调

通过processFiles回调,可以直接获取最终要扫描的文件列表并打印,排除目录下的文件不会出现在这个列表里。

代码示例:

$openapi = \OpenApi\scan('./myfolder', [
    'exclude' => ['/vendor/', '/node_modules/', '/migrations/'],
    'processFiles' => function(array $files) {
        echo "本次扫描的文件列表:\n";
        foreach ($files as $file) {
            echo "- {$file}\n";
        }
        return $files; // 必须返回文件列表,否则扫描流程会中断
    },
]);

运行后会列出所有被纳入扫描的文件,对比你的目录结构就能判断排除规则是否正确生效。

内容的提问来源于stack exchange,提问作者TheStoryCoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 13:40:34