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
相关产品推荐
相关产品推荐

