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/

还有

Phan cli help

--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.