Composer php “如何解决PHPStorm警报”;多重定义“;上课

Composer php “如何解决PHPStorm警报”;多重定义“;上课,composer-php,phpstorm,Composer Php,Phpstorm,我使用PHPStorm并为PHPUnit\Framework\TestCase提供以下消息“多个定义”。我不太确定,但它看起来像是PHPStorm用来组成自动加载系统。所以我试图找到不必要的类定义所在的目录,并将它们排除在外 我发现我可以在autoload中使用exclude from classmap属性。因此,我添加了以下内容: "vendor/cloudinary/cloudinary_php/tests/", "vendor/bin/.phpunit/phpunit-5.7/src/Fo

我使用PHPStorm并为
PHPUnit\Framework\TestCase
提供以下消息“多个定义”。我不太确定,但它看起来像是PHPStorm用来组成自动加载系统。所以我试图找到不必要的类定义所在的目录,并将它们排除在外

我发现我可以在
autoload
中使用
exclude from classmap
属性。因此,我添加了以下内容:

"vendor/cloudinary/cloudinary_php/tests/",
"vendor/bin/.phpunit/phpunit-5.7/src/ForwardCompatibility/"
这些目录中存在不必要的类定义。然后我运行了
composer dump autoload
。没有什么变化。重新启动PHPStrom-无

这是我的整个自动加载部分:

"autoload": {
        "psr-4": { "": "src/" },
        "classmap": [ "app/AppKernel.php", "app/AppCache.php" ],
        "files": [
            "src/helpers/helpers.php"
        ],
        "exclude-from-classmap": [
            "vendor/cloudinary/cloudinary_php/tests/",
            "vendor/bin/.phpunit/phpunit-5.7/src/ForwardCompatibility/"
        ]
    },

我注意到相关问题,但不符合我的要求。我知道从composer中排除文件夹的方法。

PhpStorm不太关心您的
composer.json
*。它在项目的文件中找到定义了两次的类,这就是它警告您的原因

PHP并不担心类被定义两次。如果它从一个文件(通过Composer生成的自动加载程序)加载类,它将永远不会读取另一个文件

检测到重复项并决定希望PhpStorm忽略哪一个后,在项目视图中右键单击其目录,然后从显示的菜单中选择“将目录标记为”->“已排除”



*这并不完全正确。默认情况下,PhpStorm配置为将在项目中的Composer文件中找到的包作为库添加。但是,即使项目中没有Composer文件,它也会警告类的重复定义。

您正在使用多个模块,即在单个“工作区”中使用多个“项目”,对吗

PHPStorm并不真正支持这一点。它允许您在一个工作区中打开多个项目,但实际上不支持这种工作方式。该支持完全被破坏,支离破碎,无论它存在什么,似乎都是在一个根本不兼容的设计之上被侵入的。这只是持续到2019年到2020年的令人悲伤的事态,隧道尽头没有光明