Phan:如何使用 `exclude_file_regex` 排除多个根文件夹
Phan: how to exclude several root folders with `exclude_file_regex`
我有
phan --version
Phan 3.2.0
php-ast version 1.0.11dev
PHP version used to run Phan: 7.3.23
和.phan/config.php
:
…
'directory_list' => [
'.',
'vendor',
],
"exclude_analysis_directory_list" => [
'vendor',
'.phan'
],
'exclude_file_regex' => '@^src/@'
我想完全排除(从解析和分析中)src
和我项目的其他几个根子目录。 (说来话长为什么src
在其中呢,不过就是)
但是 phan -D
使用此配置打印:
…
Going to parse 'src/Kernel.php' (3%)
Going to parse 'src/Migrations/2019/07/Version20190714141053.php' (3%)
…
为什么?
如果我这样更改配置:
'exclude_file_regex' => '@src/@'
这些文件似乎被忽略了(就像我想要的那样),但出现了另一个问题:/vendor/some-vendor/some-package/src/…
文件也被忽略了,这反过来导致分析本身出现误报错误。
我可以忽略几个根子目录吗?我该怎么办?
这个 @^src/@
正则表达式是 @^(src|subdir1|subdir2)/@
的简化版本,我是用它开始的。
@TysonAndre 在 Phan gitter chat 回答:
exclude_file_regex should be @(^(./)?src/)@ since it's probably checking against ./src/
还有
--dump-parsed-file-list
Emit a newline-separated list of files Phan would parse to stdout. This is useful to verify that options such as
exclude_file_regex are properly set up, or to run other checks on
the files Phan would parse.
我有
phan --version
Phan 3.2.0
php-ast version 1.0.11dev
PHP version used to run Phan: 7.3.23
和.phan/config.php
:
…
'directory_list' => [
'.',
'vendor',
],
"exclude_analysis_directory_list" => [
'vendor',
'.phan'
],
'exclude_file_regex' => '@^src/@'
我想完全排除(从解析和分析中)src
和我项目的其他几个根子目录。 (说来话长为什么src
在其中呢,不过就是)
但是 phan -D
使用此配置打印:
…
Going to parse 'src/Kernel.php' (3%)
Going to parse 'src/Migrations/2019/07/Version20190714141053.php' (3%)
…
为什么?
如果我这样更改配置:
'exclude_file_regex' => '@src/@'
这些文件似乎被忽略了(就像我想要的那样),但出现了另一个问题:/vendor/some-vendor/some-package/src/…
文件也被忽略了,这反过来导致分析本身出现误报错误。
我可以忽略几个根子目录吗?我该怎么办?
这个 @^src/@
正则表达式是 @^(src|subdir1|subdir2)/@
的简化版本,我是用它开始的。
@TysonAndre 在 Phan gitter chat 回答:
exclude_file_regex should be @(^(./)?src/)@ since it's probably checking against ./src/
还有
--dump-parsed-file-list
Emit a newline-separated list of files Phan would parse to stdout. This is useful to verify that options such as exclude_file_regex are properly set up, or to run other checks on the files Phan would parse.