cviebrock / package-checker
用于检查项目中所有composer包的PHP兼容性的工具。
dev-main
2024-09-17 00:41 UTC
Requires
- php: ^8.0
- composer/composer: ^2.7
- composer/semver: ^3.4
- symfony/console: ^6.0 || ^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.64
- phpstan/phpstan: ^1.12
This package is auto-updated.
Last update: 2024-09-17 00:41:25 UTC
README
用于检查项目中所有composer包的PHP兼容性的工具。
该工具通过读取项目根目录下的 composer.lock
文件,遍历每个已安装的包,并检查是否有任何包的 "require": { "php": "xxx" }
版本不满足目标PHP版本。
安装
composer require --dev cviebrock/package-checker
运行
./vendor/bin/check-packages
该工具将检查所有已安装的包与当前运行的PHP版本兼容。要测试特定版本的PHP,请使用 --targetVersion
或 -t
选项。
./vendor/bin/check-packages --targetVersion=8.2 ./vendor/bin/check-packages -t 8.2
要检查根项目所需的所有包,请使用 -D
或 --direct
标志。
您还可以使用 -v
和 -q
标志更改输出量。
如果所有包都满足目标要求,则命令将返回退出代码 0
。否则,如果有任何包不满足目标,或其兼容性未知,则将退出代码为 1
。
示例输出
> ./vendor/bin/check-packages -t 8.0 -vv
❯ ./vendor/bin/check-packages -t 8.2 -vv
---------------------------------------------- ---------- ------------------------
Package Version PHP
---------------------------------------------- ---------- ------------------------
✔ aws/aws-crt-php v1.2.6 >=5.5
✔ aws/aws-sdk-php 3.321.8 >=7.2.5
✔ clue/ndjson-react v1.3.0 >=5.3
✔ clue/stream-filter v1.7.0 >=5.3
✔ codescale/ffmpeg-php 3.2.2 >=7
✔ composer/ca-bundle 1.5.1 ^7.2 || ^8.0
✔ composer/class-map-generator 1.3.4 ^7.2 || ^8.0
✔ composer/composer 2.7.9 ^7.2.5 || ^8.0
✔ composer/metadata-minifier 1.0.0 ^5.3.2 || ^7.0 || ^8.0
✔ composer/pcre 3.3.1 ^7.4 || ^8.0
✔ composer/semver 3.4.2 ^5.3.2 || ^7.0 || ^8.0
✔ composer/spdx-licenses 1.5.8 ^5.3.2 || ^7.0 || ^8.0
✔ composer/xdebug-handler 3.0.5 ^7.2.5 || ^8.0
✔ doctrine/lexer 3.0.1 ^8.1
✔ dompdf/dompdf v2.0.8 ^7.1 || ^8.0
✔ egulias/email-validator 4.0.2 >=8.1
✔ evenement/evenement v3.0.2 >=7.0
✔ fidry/cpu-core-counter 1.2.0 ^7.2 || ^8.0
✔ friendsofphp/php-cs-fixer v3.64.0 ^7.4 || ^8.0
✔ guzzlehttp/guzzle 7.9.2 ^7.2.5 || ^8.0
✔ guzzlehttp/promises 2.0.3 ^7.2.5 || ^8.0
✔ guzzlehttp/psr7 2.7.0 ^7.2.5 || ^8.0
✔ http-interop/http-factory-guzzle 1.2.0 >=7.3
✔ jean85/pretty-package-versions 2.0.6 ^7.1|^8.0
✔ justinrainbow/json-schema 5.3.0 >=7.1
✔ league/climate 3.8.2 ^7.3 || ^8.0
✔ masterminds/html5 2.9.0 >=5.3.0
✔ mtdowling/jmespath.php 2.8.0 ^7.2.5 || ^8.0
✔ pear/console_commandline v1.2.6 >=5.3.0
? pear/console_getopt v1.4.3
✔ pear/pear-core-minimal v1.10.15 >=5.4
✔ pear/pear_exception v1.0.2 >=5.2.0
✔ pear/text_password 1.2.2 >=5.2.1
? phenx/php-font-lib 0.5.6
✔ phenx/php-svg-lib 0.5.4 ^7.1 || ^8.0
✔ php-http/client-common 2.7.1 ^7.1 || ^8.0
✔ php-http/discovery 1.19.4 ^7.1 || ^8.0
✔ php-http/httplug 2.4.0 ^7.1 || ^8.0
✔ php-http/message 1.16.1 ^7.2 || ^8.0
✔ php-http/message-factory 1.1.0 >=5.4
✔ php-http/promise 1.3.1 ^7.1 || ^8.0
✔ phpstan/phpstan 1.12.3 ^7.2|^8.0
✔ psr/container 2.0.2 >=7.4.0
✔ psr/event-dispatcher 1.0.0 >=7.2.0
✔ psr/http-client 1.0.3 ^7.0 || ^8.0
✔ psr/http-factory 1.1.0 >=7.1
✔ psr/http-message 2.0 ^7.2 || ^8.0
✔ psr/log 3.0.1 >=8.0.0
✔ ralouphie/getallheaders 3.0.3 >=5.6
✔ react/cache v1.2.0 >=5.3.0
✔ react/child-process v0.6.5 >=5.3.0
✔ react/dns v1.13.0 >=5.3.0
✔ react/event-loop v1.5.0 >=5.3.0
✔ react/promise v3.2.0 >=7.1.0
✔ react/socket v1.16.0 >=5.3.0
✔ react/stream v1.4.0 >=5.3.8
✔ sabberworm/php-css-parser v8.6.0 >=5.6.20
✔ sebastian/diff 5.1.1 >=8.1
✔ seld/cli-prompt 1.0.4 >=5.3
✔ seld/jsonlint 1.11.0 ^5.3 || ^7.0 || ^8.0
✔ seld/phar-utils 1.2.1 >=5.3
✔ seld/signal-handler 2.0.2 >=7.2.0
? sentry/sdk 3.6.0
✔ sentry/sentry 3.22.1 ^7.2|^8.0
✔ silverorange/admin 6.1.5 >=5.3.0
✔ silverorange/ambiguous-class-name-detector 1.0.1 >=7.1.0
✔ silverorange/concentrate 2.0.2 >=7.1.0
✔ silverorange/mdb2 3.1.1 >=5.3.0
✔ silverorange/mdb2_driver_pgsql 2.2.0 >=5.3.0
✔ silverorange/package-checker dev-main ^8.0
✔ silverorange/site 14.4.0 >=5.5.0
✔ silverorange/swat 6.1.5 >=5.6.0
✔ silverorange/xml_rpc_ajax 3.1.1 >=5.2.1
✔ silverorange/yui 1.0.12 >=5.2.1
✔ squizlabs/php_codesniffer 3.10.2 >=5.4.0
✔ symfony/console v6.4.11 >=8.1
✔ symfony/deprecation-contracts v3.5.0 >=8.1
✔ symfony/event-dispatcher v6.4.8 >=8.1
✔ symfony/event-dispatcher-contracts v3.5.0 >=8.1
✔ symfony/filesystem v6.4.9 >=8.1
✔ symfony/finder v6.4.11 >=8.1
✔ symfony/http-client v6.4.11 >=8.1
✔ symfony/http-client-contracts v3.5.0 >=8.1
✔ symfony/mailer v5.4.41 >=7.2.5
✔ symfony/mime v6.4.11 >=8.1
✔ symfony/options-resolver v6.4.8 >=8.1
✔ symfony/polyfill-ctype v1.31.0 >=7.2
✔ symfony/polyfill-intl-grapheme v1.31.0 >=7.2
✔ symfony/polyfill-intl-idn v1.31.0 >=7.2
✔ symfony/polyfill-intl-normalizer v1.31.0 >=7.2
✔ symfony/polyfill-mbstring v1.31.0 >=7.2
✔ symfony/polyfill-php73 v1.31.0 >=7.2
✔ symfony/polyfill-php80 v1.31.0 >=7.2
✔ symfony/polyfill-php81 v1.31.0 >=7.2
✔ symfony/process v6.4.8 >=8.1
✔ symfony/service-contracts v3.5.0 >=8.1
✔ symfony/stopwatch v6.4.8 >=8.1
✔ symfony/string v6.4.11 >=8.1
✔ symfony/yaml v5.4.43 >=7.2.5
---------------------------------------------- ---------- ------------------------
SUMMARY
-------
-------------
OK: 96
FAIL: 0
UNKNOWN: 3
-------------
UNKNOWN
-------
These packages do not have a PHP requirement, so may or may not be valid:
-------------------------------------------------------------------------------
Package: pear/console_getopt
Version: v1.4.3
PHP: none
Links: Homepage: none
Source: https://github.com/pear/Console_Getopt
Packagist: https://packagist.org.cn/packages/pear/console_getopt#v1.4.3
-------------------------------------------------------------------------------
Package: phenx/php-font-lib
Version: 0.5.6
PHP: none
Links: Homepage: https://github.com/PhenX/php-font-lib
Source: https://github.com/dompdf/php-font-lib/tree/0.5.6
Packagist: https://packagist.org.cn/packages/phenx/php-font-lib#v0.5.6
-------------------------------------------------------------------------------
Package: sentry/sdk
Version: 3.6.0
PHP: none
Links: Homepage: http://sentry.io
Source: https://github.com/getsentry/sentry-php-sdk/tree/3.6.0
Packagist: https://packagist.org.cn/packages/sentry/sdk#v3.6.0
-------------------------------------------------------------------------------