phpstorm - PhpStorm:什么是 php-cs-fixer 文件以及如何忽略它们
问题描述
我在 PhpStorm 中不断收到“类存在多个定义...”的警告,经过检查,我看到这些巨大的php-cs-fixer
文件(100K+ 行)带有注释“此文件是 PHP CS Fixer 的一部分。”。
我发现由于某种原因,在各种库中存在多个名为phploc
, composer
,php-scoper
等的其他文件的多个副本。vendor/library_name/tools/
它们都是 PhpStorm 检测到的巨大编译文件。
我尝试在 PhpStorm 中一一忽略这些文件,一旦重新索引完成,这些文件就会消失,让我相信它们是 IDE 生成的文件。但是,IDE 会生成它们并反过来包含它们的提示代码是没有意义的。
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-fixer
并phploc
在此处以某种方式从vendor
目录中删除了所有/多个副本):
解决方案
这些文件位于您的供应商目录中,因为您必须从源安装依赖项,而不是分发。
让我们用sebastian/code-unit
一个例子来看看它是如何工作的:
- 该文件显然在存储库中:https ://github.com/sebastianbergmann/code-unit/tree/1.0.8/tools
- 但不包括导出到分发版(安装包时您实际上从 GitHub 下载的存档文件):https ://github.com/sebastianbergmann/code-unit/blob/1.0.8/.gitattributes#L6 - 你可以看到它不存在于您从https://github.com/sebastianbergmann/code-unit/releases/tag/1.0.8下载的文件中
因此,您必须使用composer install --prefer-source
(或者composer update --prefer-source
因为它是具有该选项的另一个命令)安装您的依赖项,并且您想要使用--prefer-dist
或实际上不使用这些标志中的任何一个,因为后者是默认设置。您可以在官方文档中找到有关它的更多信息:https ://getcomposer.org/doc/03-cli.md#install-i
删除您的供应商目录并再次安装依赖项而无需--prefer-source
标记。
AFAIR 还有一个问题,当您没有curl
安装扩展时,只需添加此扩展即可。
推荐阅读
- c# - 如何在运行时更改 LuisService 的 BING SpellCheck?
- r - 包含三个随机数的随机集(在立方体中采样随机点)
- google-app-engine - 两个应用引擎之间的通信:“安全”环境中的灵活和标准
- java - 根据属性类型获取 XmlElement 或 XmlValue
- javascript - HtmlUnit获取编码错误的字符串
- c++ - 以自定义类为键的 Unordered_map
- r - ggplot2() 按因子绘制一个变量与自身的关系?
- javascript - 为什么这个 Javascript 可以在浏览器控制台中工作,但不能在 Selenium 的 JavascriptExecutor 中工作?
- python-3.x - 这是将 Keras 与 tensorflow 数据集一起使用的错误吗?
- javascript - Flow 是特定 JavaScript 版本的衍生产品吗?