phpcompatibility / phpcompatibility-all
PHP_CodeSniffer 的一组规则集,用于检查 PHP 交叉版本兼容性问题以及在 PHP 项目中现代化代码的机会。
Requires
Suggests
- dealerdirect/phpcodesniffer-composer-installer: ^0.7 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.
- roave/security-advisories: dev-master || Helps prevent installing dependencies with known security issues.
README
PHPCompatibilityAll
一个便利的包,用于一次性使用 Composer 安装 PHPCompatibility 组织维护的所有外部 PHP_CodeSniffer 规则集。
本包包含哪些内容?
基本规则集
PHPCompatibility - 用于检查代码库的 PHP 交叉版本兼容性的外部 PHP_CodeSniffer 标准。
框架/内容管理系统特定规则集
PHPCompatibilityJoomla - 适用于 Joomla 项目的 PHPCompatibility 规则集。
PHPCompatibilityWP - 适用于 WordPress 项目的 PHPCompatibility 规则集。
polyfill 提供者特定规则集
PHPCompatibilityPasswordCompat - 适用于使用 @ircmaxell 的
password_compat
polyfill 库的项目。PHPCompatibilityParagonie - 用于使用 Paragonie
random_compat
或 Paragoniesodium_compat
polyfill 库,或两者的项目。PHPCompatibilitySymfony - 用于使用 Symfony 项目提供的任何 PHP polyfill 库 的项目的 PHPCompatibility 规则集。有关可用的规则集的更多详细信息,请参阅 PHPCompatibilitySymfony 存储库的 README。
要求
- PHP 5.3+ 用于与 PHP_CodeSniffer 2.3.0+ 一起使用。
- PHP 5.4+ 用于与 PHP_CodeSniffer 3.0.2+ 一起使用。
- Composer
为了获得最佳效果,请使用 PHP_CodeSniffer 的最新稳定版本。PHP_CodeSniffer 的最小 推荐 版本是 2.6.0。
安装说明
如果您尚未安装用于管理 PHP_CodeSniffer 的 installed_paths
设置的 Composer 插件,请从命令行运行以下命令
composer config allow-plugins.dealerdirect/phpcodesniffer-composer-installer true composer require --dev dealerdirect/phpcodesniffer-composer-installer:"^0.7" phpcompatibility/phpcompatibility-all:"*"
如果您已经安装了 Composer PHP_CodeSniffer 插件,请运行
composer require --dev phpcompatibility/phpcompatibility-all:"*"
接下来,运行
vendor/bin/phpcs -i
如果一切顺利,您现在将看到为 PHP_CodeSniffer 安装了 PHPCompatibility
、PHPCompatibilityJoomla
、PHPCompatibilityWP
和一些与 polyfill 相关的标准。
如何使用
现在,您可以使用以下任何命令来检查您的代码
./vendor/bin/phpcs -p . --standard=PHPCompatibility ./vendor/bin/phpcs -p . --standard=PHPCompatibilityJoomla ./vendor/bin/phpcs -p . --standard=PHPCompatibilityWP ./vendor/bin/phpcs -p . --standard=PHPCompatibilityPasswordCompat ./vendor/bin/phpcs -p . --standard=PHPCompatibilityParagonieRandomCompat ./vendor/bin/phpcs -p . --standard=PHPCompatibilityParagonieSodiumCompat ./vendor/bin/phpcs -p . --standard=PHPCompatibilitySymfonyPolyfillPHP54 ./vendor/bin/phpcs -p . --standard=PHPCompatibilitySymfonyPolyfillPHP73 ...etc... # You can also combine the standards if your project uses several: ./vendor/bin/phpcs -p . --standard=PHPCompatibilityPasswordCompat,PHPCompatibilitySymfonyPolyfillPHP70,PHPCompatibilityWP
默认情况下,您将只收到有关弃用和/或删除的 PHP 功能的通知。
为了充分利用 PHPCompatibility 标准,您应该指定一个 testVersion
以检查其内容。这将启用对弃用/删除的 PHP 功能以及使用新 PHP 功能的代码的检测。
- 您可以通过在命令行命令中添加
--runtime-set testVersion 5.5
来仅针对一个特定的 PHP 版本运行检查。 - 您还可以指定需要支持的 PHP 版本范围。在这种情况下,将报告影响该范围中任何 PHP 版本的兼容性问题:
--runtime-set testVersion 5.3-5.5
。 - 从 PHPCompatibility 7.1.3 开始,如果您想支持特定版本以上或以下的所有内容,可以省略范围的一部分,例如使用
--runtime-set testVersion 7.0-
来运行所有 PHP 7.0 及以上版本的检查。
例如
# For a Joomla project which should be compatible with PHP 5.3 up to and including PHP 7.0: ./vendor/bin/phpcs -p . --standard=PHPCompatibilityJoomla --runtime-set testVersion 5.3-7.0 # For a project using both the Paragonie Sodium Compat polyfill as well as the Symfony PHP 7.1 polyfill and which should be compatible with PHP 5.4 and higher: ./vendor/bin/phpcs -p . --standard=PHPCompatibilityParagonieSodiumCompat,PHPCompatibilitySymfonyPolyfillPHP71 --runtime-set testVersion 5.4-
有关更详细的信息,请参阅主要 PHPCompatibility 标准的 README。
仅测试 PHP 文件
默认情况下,PHP_CodeSniffer 将分析 PHP、JavaScript 和 CSS 文件。由于 PHPCompatibility sniffs 仅针对 PHP 代码,您可以告诉 PHP_CodeSniffer 仅检查 PHP 文件,从而略微加快运行速度
./vendor/bin/phpcs -p . --standard=PHPCompatibilitySymfonyPolyfillPHP56 --extensions=php --runtime-set testVersion 5.3-
许可证
PHPCompatibility 组织内的所有代码均根据 GNU Lesser General Public License (LGPL) 发布。有关更多信息,请访问 https://gnu.ac.cn/copyleft/lesser.html
变更日志
1.1.3 - 2022-10-30
- README:更新了与 Composer >= 2.2 兼容的安装说明 兼容性。
- Composer:该软件包现在将自己标识为静态分析工具。感谢 @GaryJones!
- 其他维护和较小规模的文档更新。
1.1.2 - 2021-02-16
- 推荐的Composer PHPCS插件版本现在是
^0.7.0
,它提供了与Composer 2.0的兼容性。Composer PHPCS插件。 - 规则集现在也针对PHP 7.4和8.0进行了测试。注意:仅当PHP_CodeSniffer >= 3.5.6时,才能获得PHP 7.4的完整支持。注意:仅当与PHP_CodeSniffer >= 3.5.7结合使用时,才能获得PHP 8.0的运行时支持,预计在PHP_CodeSniffer 3.6.0中提供完整支持。
1.1.1 - 2019-08-29
- 推荐的Composer PHPCS插件版本现在是
^0.5.0
。 - 规则集现在也针对PHP 7.3进行了测试。注意:由于PHP_CodeSniffer自身存在不兼容性,仅当与PHP_CodeSniffer 2.9.2或3.3.1+结合使用时,才能获得PHP 7.3的完整支持。
1.1.0 - 2018-10-07
- 增加了新的规则集PHPCompatibilityPasswordCompat、PHPCompatibilityParagonie和PHPCompatibilitySymfony。
1.0.0 - 2018-07-17
包含PHPCompatibility、PHPCompatibilityJoomla和PHPCompatibilityWP规则集的初始版本。