PHP Rector 合并路径并跳过

dna*_*ann 1 php rector

我有一个 PHP Symfony 项目,其中包含许多供应商和其他子目录文件,这些文件不应被 ector 触及。因此,我将路径变量设置为仅检查特定文件夹树中的文件。效果很好。

    return static function (RectorConfig $rectorConfig): void {
    $rectorConfig->paths([
        __DIR__ . '/plugins/*',
    ]);
Run Code Online (Sandbox Code Playgroud)

但由于此文件夹包含可能有自己的供应商和测试目录的插件,因此我想跳过这些。关于文档https://github.com/rectorphp/rector/blob/main/docs/how_to_ignore_rule_or_paths.md使用通配符跳过是可能的,但这些跳过规则将被完全忽略。

return static function (RectorConfig $rectorConfig): void {
    $rectorConfig->paths([
        __DIR__ . '/plugins/*',
    ]);

    $rectorConfig->skip([
        __DIR__ . '/plugins/*/tests',
        __DIR__ . '/plugins/*/vendor',
    ]);
Run Code Online (Sandbox Code Playgroud)

我的配置可能有什么问题?或者校长不允许结合这些选项?文档没有提供这样的情况。

dna*_*ann 7

一段时间后,我发现skip不适用于目录,但适用于文件。所以下面的配置有效。

return static function (RectorConfig $rectorConfig): void {
    $rectorConfig->paths([
        __DIR__ . '/plugins/*',
    ]);

    $rectorConfig->skip([
        __DIR__ . '/plugins/*/tests/**/*',
        __DIR__ . '/plugins/*/vendor/**/*',
    ]);
Run Code Online (Sandbox Code Playgroud)