spaze / phpcs-phar
PHP_CodeSniffer phar 版本
Requires
- composer-runtime-api: ^2.1
Requires (Dev)
Replaces
README
本仓库包含PHPCSStandards/PHP_CodeSniffer的phar版本。
文件从PHP_CodeSniffer 发布页面下载,如果文件发生变化,则进行提交并创建与上游发布相同版本的发布。
整个流程由GitHub Actions 工作流程提供支持。
我创建此仓库是为了个人使用,以克服WSL2使用的9P文件系统的性能问题。PHPCSStandards组织也计划创建Composer phar版本,因此这个仓库最终会停止存在,无论是官方Composer phar发布,还是9P性能足够,或者我退休。请提前做好心理准备。
安装
使用Composer安装
composer require --dev spaze/phpcs-phar
安装编码标准
此仓库中的phar版本与PHP_CodeSniffer Standards Composer Installer Plugin(dealerdirect/phpcodesniffer-composer-installer
包)不兼容。请注意,该包甚至替换了其composer.json
中的安装插件。
原因有以下几点
- 安装插件看起来在寻找不同的已安装包,
squizlabs/php_codesniffer
以添加更多标准 - 插件创建了一个配置文件,该文件包含要安装的标准相对于路径,因此代码检查器期望标准位于phar文件内部,而这并不符合实际情况
然而,安装标准有多种不同的方式。假设你想添加slevomat/coding-standard
,你可以
自动安装可用的标准
如果不存在CodeSniffer.conf
文件,此包将在每次执行时查找并自动安装所有可用的编码标准。由于每次包更新都会删除,因此不会持久化修改后的配置,也不会创建配置文件。这是模拟Standards Composer Installer Plugin的推荐选项。
修改配置文件
- 在你的项目中运行
vendor/bin/phpcs --config-set installed_paths ../../slevomat/coding-standard
- 在
vendor/spaze/phpcs-phar
目录中找到CodeSniffer.conf
文件 - 编辑已安装标准的路径,并将其更改为绝对路径,例如将
'installed_paths' => '../../slevomat/coding-standard'
更改为'installed_paths' => __DIR__ . '/../../slevomat/coding-standard'
请注意,每次包更新都会删除CodeSniffer.conf
文件。
使用绝对路径安装标准
在你的项目中运行
vendor/bin/phpcs --config-set installed_paths $(realpath vendor/slevomat/coding-standard)
或使用任何绝对路径作为installed_paths
值。
请注意,每次包更新都会删除CodeSniffer.conf
文件。