dealerdirect / phpcodesniffer-composer-installer
PHP_CodeSniffer 标准Composer安装插件
资助包维护!
Open Collective
PHPCSStandards
jrfnl
Requires
- php: >=5.4
- composer-plugin-api: ^1.0 || ^2.0
- squizlabs/php_codesniffer: ^2.0 || ^3.1.0 || ^4.0
Requires (Dev)
- dev-main
- v1.0.0
- v0.7.2
- v0.7.1
- v0.7.0
- v0.6.2
- v0.6.1
- v0.6.0
- v0.5.0
- v0.4.4
- v0.4.3
- v0.4.2
- v0.4.1
- v0.4.0
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.1
- v0.2.0
- v0.1.1
- v0.1.0
- dev-dependabot/composer/yoast/phpunit-polyfills-tw-1.0or-tw-2.0
- dev-feature/tests-performance-tweak-windows
- dev-master
- dev-issues/159-rename-package-for-packagist
- dev-TEMP/testing
- dev-feature/143-finder-cross-version-compat
- dev-feature/tests-safeguard-against-php-notices
- dev-issues/9-unit-tests
This package is auto-updated.
Last update: 2024-09-16 12:37:08 UTC
README
此Composer安装插件允许轻松安装PHP_CodeSniffer编码标准(规则集)。
不再需要目录的符号链接、在特定位置检出仓库或更改phpcs
配置。
用法
可以通过将此包作为开发依赖项通过Composer进行安装
composer require --dev dealerdirect/phpcodesniffer-composer-installer:"^1.0"
当使用Composer 2.2或更高版本时,Composer会要求您的许可以允许此插件执行代码。为了使此插件功能正常,需要授予许可。
一旦授予许可,以下片段将由Composer自动添加到您的composer.json
文件中
{ "config": { "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true } } }
当使用Composer < 2.2时,您可以通过运行以下命令在升级到Composer 2.2之前添加权限标志
composer config allow-plugins.dealerdirect/phpcodesniffer-composer-installer true
这就完成了。
兼容性
此插件与以下版本兼容
- PHP 5.4+、7.x 和 8.x(从
v0.7.0
起支持PHP v8) - Composer 1.x 和 2.x(从
v0.7.0
起支持Composer v2) - PHP_CodeSniffer 2.x 和 3.x(从
v0.4.0
起支持PHP_CodeSniffer v3)
工作原理
基本上,此插件执行以下步骤
- 此插件将在所有当前安装的Composer包中搜索
phpcodesniffer-standard
包。 - 将扫描匹配的包和项目本身以查找PHP_CodeSniffer规则集。
- 该插件将调用PHP_CodeSniffer并配置
installed_paths
选项。
示例项目
以下是一个示例Composer项目和已包含多个phpcodesniffer-standard
包。
{ "name": "example/project", "description": "Just an example project", "type": "project", "require": {}, "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "*", "object-calisthenics/phpcs-calisthenics-rules": "*", "phpcompatibility/php-compatibility": "*", "wp-coding-standards/wpcs": "*" }, "config": { "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true } } }
运行composer install
后,PHP_CodeSniffer即可正常工作
$ ./vendor/bin/phpcs -i The installed coding standards are MySource, PEAR, PSR1, PSR2, PSR12, Squiz, Zend, ObjectCalisthenics, PHPCompatibility, WordPress, WordPress-Core, WordPress-Docs and WordPress-Extra
直接调用插件
在某些情况下,可能需要直接调用此插件的功能。例如,在开发过程中或在CI环境中。
由于插件需要Composer才能工作,因此直接调用需要通过项目的composer.json
进行连接。
这是通过在composer.json
的script
部分添加对Plugin::run
函数的调用来完成的
{ "scripts": { "install-codestandards": [ "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin::run" ] } }
可以使用 composer run-script install-codestandards
命令来调用该命令,或者在其他脚本配置中引用,具体如下
{ "scripts": { "install-codestandards": [ "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin::run" ], "post-install-cmd": [ "@install-codestandards" ] } }
有关 Composer 脚本的更多详细信息,请参阅 Composer 手册中的脚本部分。
更改编码标准搜索深度
默认情况下,此插件最多搜索到编码标准的三级目录。在大多数情况下,这应该足够。但是,如果需要,此插件允许您自定义搜索深度设置。
{ "extra": { "phpcodesniffer-search-depth": 5 } }
注意事项
当此插件全局安装时,Composer 会加载 global 插件而不是本地仓库中的插件。尽管 这种行为已在 composer 手册中记录,但它可能会造成混淆,因为可能运行的是另一个版本的插件,而不是项目指定的版本。
开发编码标准
编码标准可以像 PHP_CodeSniffer 中记录的那样正常开发,请参阅 编码标准教程。
通过添加 composer.json
文件来创建您的编码标准的 composer 包。
{ "name" : "acme/phpcodesniffer-our-standards", "description" : "Package contains all coding standards of the Acme company", "require" : { "php" : ">=5.4.0", "squizlabs/php_codesniffer" : "^3.6" }, "type" : "phpcodesniffer-standard" }
要求
- 仓库可能包含一个或多个标准。
- 每个标准可以有一个独立的目录,但深度不得超过仓库根目录的 3 级。
- 包的
type
必须是phpcodesniffer-standard
。如果没有这个类型,插件将不会触发。
在编码标准内部要求插件
如果您的编码标准本身依赖于额外的外部 PHPCS 标准,此插件可以简化最终用户的操作,通过为他们安装所有标准(包括您的标准和依赖)。
这可以帮助减少有关设置 installed_paths
的支持问题,并简化您标准的安装说明。
为了使此功能正常工作,请确保外部标准通过 require
,而不是 require-dev
,将此插件添加到 composer.json
配置中。
⚠️ 最终用户可能已经
require-dev
了此插件,或者您的最终用户使用的其他外部标准可能也需要此插件。为了避免最终用户遇到 "dependency hell",请确保对此插件的版本要求灵活。
请记住,Composer 将不稳定的小版本视为主要版本,因此无法解决一个配置要求此插件版本为
^0.7
,而另一个配置要求版本为^1.0
的情况。允许多个小版本或使用*
作为版本要求。以下是一些可以使用的灵活要求的示例
composer require dealerdirect/phpcodesniffer-composer-installer:"*" composer require dealerdirect/phpcodesniffer-composer-installer:"^0.4.1 || ^0.5 || ^0.6 || ^0.7 || ^1.0"
变更日志
此仓库不包含 CHANGELOG.md
文件,但是,我们确实使用 GitHub 发布 功能发布每个版本的变更日志。
贡献
这是一个活跃的开源项目。我们始终欢迎想要使用代码或为其做出贡献的人。
我们已为我们的 贡献指南 设立了一个单独的文档。
感谢您的参与!😍
作者 & 贡献者
此仓库的原始想法和设置由 Franck Nijhof 提出,他是 @ Dealerdirect 的员工。
要查看所有作者和/或贡献者的完整列表,请查看 贡献者页面。
资金
本项目包含在通过PHP_CodeSniffer Open Collective支持的项目中。
如果您使用此插件,鼓励并感谢您向Open Collective进行财务捐助。
许可证
MIT许可证(MIT)
版权所有(c)2016-2022 Dealerdirect B.V.及其贡献者 版权所有(c)2022- PHPCSStandards及其贡献者
以下条件,授予任何获得此软件及其相关文档副本(“软件”)的人免费使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供者提供软件的人进行此类操作:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“现状”提供,不提供任何形式的保证,无论是明示的、暗示的还是法定的,包括但不限于适销性、特定用途的适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该责任是因合同、侵权或其他方式引起的,无论该索赔、损害或其他责任是否与软件或其使用或其他方式有关。