phpcompatibility / phpcompatibility-passwordcompat
这是一套用于PHP_CodeSniffer的规则集,用于检查项目中PHP跨版本兼容性问题,同时考虑到ircmaxell的password_compat库提供的polyfills。
Requires
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: ^0.7
- ircmaxell/password-compat: dev-master
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
PHPCompatibilityPasswordCompat
使用PHPCompatibilityPasswordCompat,您可以使用ircmaxell的ircmaxell的password_compat polyfill库来分析项目代码库,以检查PHP跨版本兼容性。
此存储库包含什么?
这是一套用于PHP_CodeSniffer的规则集,用于检查项目中PHP跨版本兼容性问题,同时考虑到ircmaxell的password_compat polyfill库提供的polyfills。
此规则集通过排除由random_compat
库提供的回填和polyfills,防止了PHPCompatibility标准中的假阳性。
要求
-
- PHP 5.3+用于与PHP_CodeSniffer 2.3.0+一起使用。
- PHP 5.4+用于与PHP_CodeSniffer 3.0.2+一起使用。
为了获得最佳结果,请使用PHP_CodeSniffer的最新稳定版本。PHP_CodeSniffer的最低推荐版本是2.6.0。
-
PHPCompatibility 9.0.0+.
安装说明
唯一支持的安装方法是通过Composer。
如果您尚未安装用于管理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-passwordcompat:"*"
如果您已经安装了Composer的PHP_CodeSniffer插件,请运行
composer require --dev phpcompatibility/phpcompatibility-passwordcompat:"*"
接下来,运行
vendor/bin/phpcs -i
如果一切顺利,您现在将看到为PHP_CodeSniffer安装了PHPCompatibility
和PHPCompatibilityPasswordCompat
标准。
如何使用
现在您可以使用以下命令检查项目中PHP跨版本兼容性的代码
./vendor/bin/phpcs -p . --standard=PHPCompatibilityPasswordCompat
默认情况下,您只会收到有关已弃用和/或已删除的PHP功能的通知。
为了充分利用PHPCompatibilityPasswordCompat标准,您应该指定一个testVersion
进行检查。这将启用对已弃用/删除的PHP功能以及使用新PHP功能的代码的检测。
例如
# For a project which should be compatible with PHP 5.3 up to and including PHP 7.0: ./vendor/bin/phpcs -p . --standard=PHPCompatibilityPasswordCompat --runtime-set testVersion 5.3-7.0 # For a project which should be compatible with PHP 5.4 and higher: ./vendor/bin/phpcs -p . --standard=PHPCompatibilityPasswordCompat --runtime-set testVersion 5.4-
有关设置testVersion
的更详细信息,请参阅通用PHPCompatibility标准的README。
仅测试PHP文件
默认情况下,PHP_CodeSniffer将分析PHP、JavaScript和CSS文件。由于PHPCompatibility的sniffs仅针对PHP代码,因此您可以告诉PHP_CodeSniffer只检查PHP文件,这样可以略微加快运行速度
./vendor/bin/phpcs -p . --standard=PHPCompatibilityPasswordCompat --extensions=php --runtime-set testVersion 5.3-
许可
PHPCompatibility 组织内的所有代码均在 GNU Lesser General Public License (LGPL) 协议下发布。更多信息,请访问 https://gnu.ac.cn/copyleft/lesser.html
变更日志
1.0.4 - 2022-10-23
- README:更新了与 Composer >= 2.2 兼容的安装说明。兼容性。
- Composer:现在将此包标识为静态分析工具。感谢 @GaryJones!
- 其他维护工作和文档更新。
1.0.3 - 2021-02-15
- 现在推荐的 Composer PHPCS 插件版本是
^0.7.0
,它提供了与 Composer 2.0 的兼容性。 - 现在也测试了规则集对 PHP 7.4 和 8.0 的兼容性。注意:完整的 PHP 7.4 支持仅在与 PHP_CodeSniffer 3.5.6 结合使用时可用。注意:运行时 PHP 8.0 支持仅在与 PHP_CodeSniffer 3.5.7 结合使用时可用,完整支持预计将在 PHP_CodeSniffer 3.6.0 中提供。
1.0.2 - 2019-08-29
- Composer:Composer PHPCS 插件的推荐版本已提升至
^0.5.0
。 - CI:增加了对 polyfill 库本身变更导致的假阳性结果的前置警告系统。
1.0.1 - 2018-12-16
- 防止在运行规则集时对 polyfill 自身代码产生假阳性。
- 现在也测试了规则集对 PHP 7.3 的兼容性。注意:由于 PHP_CodeSniffer 自身的兼容性问题,完整的 PHP 7.3 支持仅在与 PHP_CodeSniffer 2.9.2 或 3.3.1+ 结合使用时可用。
1.0.0 - 2018-10-07
PHPCompatibilityPasswordCompat 规则集的初始发布。