phpstan抱怨Symfony 3.4中Flex项目的Doctrine Migrations

8
我有一个基于Symfony 3.4和Flex构建的项目,我添加了phpstan进行静态分析。
它抱怨找不到我的迁移类:
在尝试分析时未找到DoctrineMigrations \ Version20180831185050类 - 自动加载可能未正确配置。
实际上,由Doctrine Migrations生成的文件不符合自动加载模式,但在其他方面工作得非常好。
是否有任何方法可以停止关于此问题的抱怨?
2个回答

9

您可以从分析中排除文件

在项目目录中创建phpstan.neon配置文件并插入以下内容:

parameters:
    excludes_analyse:
        - %currentWorkingDirectory%/src/DoctrineMigrations/*

位于src/DoctrineMigrations目录中的所有文件将被排除在分析之外。


可以,不过在Flex中目录为src/Migrations,没有Doctrine的名称。 - Radu C
2
最好使用autoload_directories进行包含,而不是像@ondřej-mirtes的答案中所排除的。 - Manuel

9
您可以将具有迁移的目录添加到Composer自动加载器中,或者更好地将其添加到phpstan.neon中的autoload_directories中:
parameters:
    autoload_directories:
        - src/Migrations

查看PHPStan文档中的自动加载部分以了解更多详细信息。


嗯,我不太确定这个。如果你看一下 config/packages/doctrine_migrations.yaml 文件,Symfony 开发人员留下了一条注释 "# namespace is arbitrary but should be different from App\Migrations as migrations classes should NOT be autoloaded" - agoldev
@agoldev 在应用程序上下文中是的,它们不应该被自动加载,以防止它们因意外而执行。但在 PhpStan 的情况下,您希望对它们运行检查以查看它们是否语法正确。因此,您只需将它们添加到 PhpStan 中。 - SteveB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接