fabianblum / phpcs-psr4-sniff
PHP_CodeSniffer sniff 用于检查类名是否符合 PSR-4 项目结构。 (兼容 PHP 8.3)
Requires
- php: >=7.1
- ext-json: *
- slevomat/coding-standard: >=4.7 <9.0.0
- squizlabs/php_codesniffer: >=3.3 <4.0.0
This package is auto-updated.
Last update: 2024-09-03 12:21:51 UTC
README
这是一个自定义的 PHP Code Sniffer sniff,用于帮助找到不符合 PSR-4 自动加载器 的类。
废弃包的公共分支
此包最初托管在 https://github.com/suin/phpcs-psr4-sniff,但现在似乎已被废弃。为了方便迁移,保留了原始的命名空间。
要切换到此包,请使用以下命令
composer remove suin/phpcs-psr4-sniff
composer require fabianblum/phpcs-psr4-sniff
演示
如果您想尝试此 sniff,请访问 ./tests/demo。
功能
类、接口和特质
此 sniff 不仅涵盖类,还包括接口和特质。
命名空间和类名
此 sniff 检查命名空间和类名是否都符合 PSR-4 项目结构。
无需配置
由于此 sniff 尊重 composer.json
的 自动加载配置,您无需声明命名空间前缀和基本目录之间的映射。
类似包
PHP-CS-Fixer 的 Psr4Fixer
Psr4Fixer 检查类名是否应与文件名匹配,并在其不对应文件名时修复类名。它不检查命名空间。
相比之下,此包不仅检查类名,还检查命名空间。
SlevomatCodingStandard.Files.TypeNameMatchesFileName
SlevomatCodingStandard.Files.TypeNameMatchesFileName 是一个自定义的 PHP Code Sniffer sniff,用于检查命名空间和类名是否遵循 PSR-0/PSR-4 项目结构。
此 sniff 与 suin/phpcs-psr4-sniff 类似,但它需要关于 PSR-0/PSR-4 项目结构的显式配置。suin/phpcs-psr4-sniff 采用隐式方式,因为它遵循 Composer 的自动加载配置。
安装
composer require --dev suin/phpcs-psr4-sniff
用法
首先,在项目的根目录中创建一个 PHPCS 规则集 XML (phpcs.xml.dist 或 phpcs.xml) 文件。
<?xml version="1.0"?> <ruleset name="My Project"> <!-- Specify directory that composer.json is placed. Usually it would be project root directory. --> <arg name="basepath" value="."/> <!-- Relative path to your ruleset.xml --> <rule ref="vendor/suin/phpcs-psr4-sniff/src/Suin"/> <!-- Optional: If you have to specify composer.json path, please add following section. --> <rule ref="Suin.Classes.PSR4"> <properties> <!-- composerJsonPath must be relative path to "basepath" --> <property name="composerJsonPath" value="sub-dir/composer.json"/> </properties> </rule> </ruleset>
然后使用以下命令运行它
vendor/bin/phpcs src
变更日志
请参阅 CHANGELOG 了解更多详情。
贡献
向主仓库发送 问题 或 pull-request。