PHP_CodeSniffer 标准安装器插件:提升代码质量的利器

PHP_CodeSniffer 标准安装器插件:提升代码质量的利器

composer-installerComposer installer for PHP_CodeSniffer coding standards项目地址:https://gitcode.com/gh_mirrors/co/composer-installer

最新更新 推荐 许可

测试 [![版本][packagist-version-shield]][packagist-version] [![包信息][packagist-shield]][packagist]

[![行为准则][code-of-conduct-shield]][code-of-conduct]

这个是针对 PHP_CodeSniffer 的 Composer 安装器插件,帮助您轻松管理并安装编码标准(规则集),无需再为符号链接目录或更改配置文件而烦恼。

使用方法

通过 [Composer][composer] 可以快速安装这个开发依赖:

composer require --dev dealerdirect/phpcodesniffer-composer-installer

如果使用的是 Composer 2.2 或更高版本,系统会提示您授权执行插件代码,必须给予许可才能正常工作。

一旦获得授权,Composer 将自动在您的 composer.json 文件中添加以下配置:

{
    "config": {
        "allow-plugins": {
            "dealerdirect/phpcodesniffer-composer-installer": true
        }
    }
}

对于 Composer 版本低于 2.2 的情况,可以先运行以下命令手动授予权限:

composer config allow-plugins.dealerdirect/phpcodesniffer-composer-installer true

一切准备就绪!

兼容性

该插件兼容以下环境:

  • PHP 5.4+7.x8.x
  • [Composer][composer] 1.x2.x
  • [PHP_CodeSniffer][codesniffer] 2.x3.x

请注意,使用 Composer 2.x 或 PHP 8.0 需要明确指定版本 0.7.0(或以上)。

工作原理

简单来说,插件执行以下步骤:

  1. 搜索所有已安装的 Composer 包中的 phpcodesniffer-standard
  2. 扫描匹配到的包和项目本身,查找 PHP_CodeSniffer 规则集。
  3. 调用 PHP_CodeSniffer 并设置 installed_paths 选项。

示例项目

这是一个示例项目,包含了多个 phpcodesniffer-standard 包:

{
    "name": "example/project",
    "description": "只是一个示例项目",
    "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
已安装的编码标准有:MySource, PEAR, PSR1, PSR2, PSR12, Squiz, Zend, ObjectCalisthenics,
PHPCompatibility, WordPress, WordPress-Core, WordPress-Docs 和 WordPress-Extra

直接调用插件

在某些情况下,可能需要直接调用插件的功能,如开发阶段或持续集成(CI)环境中。由于插件需要依赖 Composer,可以通过项目 composer.json 中的 script 配置来实现。

composer.json 添加如下配置:

{
    "scripts": {
        "install-codestandards": [
            "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin::run"
        ]
    }
}

然后通过 composer run-script install-codestandards 命令执行,或者在其他脚本配置中引用。

修改标准搜索深度

默认情况下,插件会向上最多搜索三层目录寻找编码标准。如果需要自定义搜索深度,可以在 composer.jsonextra 部分设置:

{
    "extra": {
        "phpcodesniffer-search-depth": 5
    }
}

注意事项

全局安装插件时,Composer 加载的是全局版本的插件,而不是项目本地指定的版本,可能会导致版本不一致的问题。尽管这是 Composer 文档中提到的行为,但仍可能引起混淆。

开发编码标准

遵循 [PHP_CodeSniffer][codesniffer] 文档和 [教程][tutorial],可以正常开发编码标准,并创建一个包含编码标准的 Composer 包,确保其 type 设置为 phpcodesniffer-standard

例如:

{
  "name" : "acme/phpcodesniffer-our-standards",
  "description" : "Acme 公司的所有编码标准",
  "require" : {
    "php" : ">=5.4.0",
    "squizlabs/php_codesniffer" : "^3.6"
  },
  "type" : "phpcodesniffer-standard"
}

在编码标准中要求此插件

如果您希望自己的编码标准能自动处理其依赖的外部 PHPCS 标准的安装,只需在你的 composer.jsonrequire 部分添加对这个插件的依赖,而不是 require-dev,这样可以简化用户的安装过程,减少关于如何设置 installed_paths 的询问。

但是,请务必确保版本要求灵活,以免导致“依赖地狱”。

更新日志与贡献指南

我们在每个发行版的 [GitHub 发布页面][changelog] 上记录了变更日志。想要参与贡献?查看我们的 [贡献指南][contributing-guidelines]。

作者与贡献者

感谢 [Franck Nijhof][frenck](Dealerdirect B.V. 员工)的原始想法和初始设置,以及所有做出贡献的人们。完整的作者和贡献者列表请查看 [贡献者页面][contributors]。

许可协议

本项目采用 MIT 许可,详细信息见许可证文本。

composer-installerComposer installer for PHP_CodeSniffer coding standards项目地址:https://gitcode.com/gh_mirrors/co/composer-installer

  • 28
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计蕴斯Lowell

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值