PhpStorm:什么是php-cs-fixer文件以及如何忽略它们

问题描述

我在PHPStorm中不断收到“类存在多个定义...”的警告,并且在检查时,我看到了这些巨大的PHP-cs-fixer文件(100K +行)中的一堆,并带有注释“此文件是一部分CS CS Fixer”。

我发现出于某种原因,在各种库中的PHPloc下有多个名为composerPHP-scopervendor/library_name/tools/等的其他文件的多个副本。它们都是PHPStorm检测到的巨大的编译文件

我试图在PHPStorm中一一忽略这些文件,一旦重新索引完成,这些文件就会消失,使我相信它们是IDE生成文件。但是,IDE不会生成它们并反过来包含它们提示代码

enter image description here

enter image description here

composer.json

{
    "name": "magento/project-community-edition","description": "eCommerce Platform for Growth (Community Edition)","type": "project","license": [
        "OSL-3.0","AFL-3.0"
    ],"config": {
        "preferred-install": "dist","sort-packages": true
    },"require": {
        "magento/composer-root-update-plugin": "~1.0","magento/product-community-edition": "2.4.1"
    },"require-dev": {
        "allure-framework/allure-PHPunit": "~1.2.0","dealerdirect/PHPcodesniffer-composer-installer": "^0.5.0","friendsofPHP/PHP-cs-fixer": "~2.16.0","lusitanian/oauth": "~0.8.10","magento/magento-coding-standard": "*","magento/magento2-functional-testing-framework": "^3.0","pdepend/pdepend": "~2.7.1","PHPcompatibility/PHP-compatibility": "^9.3","PHPmd/PHPmd": "^2.8.0","PHPstan/PHPstan": ">=0.12.3 <=0.12.23","PHPunit/PHPunit": "^9","sebastian/PHPcpd": "~5.0.0","squizlabs/PHP_codesniffer": "~3.5.4"
    },"conflict": {
        "gene/bluefoot": "*"
    },"autoload": {
        "psr-4": {
            "Magento\\Framework\\": "lib/internal/Magento/Framework/","Magento\\Setup\\": "setup/src/Magento/Setup/","Magento\\": "app/code/Magento/","Zend\\Mvc\\Controller\\": "setup/src/Zend/Mvc/Controller/"
        },"psr-0": {
            "": [
                "app/code/","generated/code/"
            ]
        },"files": [
            "app/etc/NonComposerComponentRegistration.PHP","app/helper.PHP"
        ],"exclude-from-classmap": [
            "**/dev/**","**/update/**","**/Test/**"
        ]
    },"autoload-dev": {
        "psr-4": {
            "Magento\\Sniffs\\": "dev/tests/static/framework/Magento/Sniffs/","Magento\\Tools\\": "dev/tools/Magento/Tools/","Magento\\Tools\\Sanity\\": "dev/build/publication/sanity/Magento/Tools/Sanity/","Magento\\TestFramework\\inspection\\": "dev/tests/static/framework/Magento/TestFramework/inspection/","Magento\\TestFramework\\Utility\\": "dev/tests/static/framework/Magento/TestFramework/Utility/","Magento\\PHPStan\\": "dev/tests/static/framework/Magento/PHPStan/"
        }
    },"version": "2.4.0","minimum-stability": "stable","repositories": [
        {
            "type": "composer","url": "https://repo.magento.com/"
        }
    ],"extra": {
        "magento-force": "override"
    }
}

PHPStorm忽略了文件(在此处添加PHP-cs-fixerPHPloc以某种方式从vendor目录中删除了所有/多个副本):

enter image description here

解决方法

这些文件位于您的供应商目录中,因为您必须从源而非发行版安装依赖项。

让我们以 sebastian/code-unit 为例来看看它是如何工作的:

因此,您必须使用 composer install --prefer-source(或 composer update --prefer-source,因为它是具有该选项的另一个命令)安装您的依赖项,并且您想使用 --prefer-dist 或实际上不使用任何这些标记为后者是默认值。您可以在官方文档中找到有关它的更多信息:https://getcomposer.org/doc/03-cli.md#install-i

删除您的供应商目录并在没有 --prefer-source 标志的情况下再次安装依赖项。

AFAIR 当您没有安装 curl 扩展程序时也会出现问题,然后只需添加此扩展程序即可。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...