composer-fallback / php-http.client-implementation.guzzle7
使用用户提供的包满足 "php-http/client-implementation",或者回退到 "guzzle7"。
1.1
2020-10-02 12:33 UTC
This package is auto-updated.
Last update: 2024-08-29 05:43:34 UTC
README
提供用于需要 php-http/client-implementation
的库的元包,当用户不满足初始要求时回退到默认实现。
用法
composer require "composer-fallback/php-http.client-implementation.guzzle7:*"
Composer 会优先
- 使用用户提供的实现
- 否则,回退到
php-http/guzzle7-adapter
工作原理
此包包含 2 个版本
当用户已有一个满足 php-http/client-implementation
的包时,Composer 将选择此最高版本。否则,Composer 将选择最低版本,在这种情况下将下载以下包:php-http/guzzle7-adapter
。
它解决了什么问题?
您维护一个需要 php-http/client-implementation
实现的库,但您不希望要求特定的实现。
例如,您是以下 composer.json 的维护者
{ "name": "acme/lib", "require": { "php-http/client-implementation": "^1.0", } }
当最终用户使用以下代码请求您的库时
{ "name": "end-user/app", "require": { "acme/lib": "^1.0" } }
他们可能会遇到这样的错误
composer up Your requirements could not be resolved to an installable set of packages. Problem 1 - Installation request for acme/lib ^1.0 -> satisfiable by acme/lib[1.0]. - acme/lib 1.0 requires php-http/client-implementation ^1.0 -> no matching package found.
您可以要求用户安装一个随机的包,它可行,但用户体验非常差,一开始可能会让人困惑。
通过使用 composer-fallback/php-http.client-implementation.guzzle7
,用户将能够要求他们的首选实现或回退到您的默认选择
满足首选要求的用户示例
{ "name": "end-user/app", "require": { "acme/lib": "^1.0", "third-party/provide-implementation": "^1.0" } }
composer up ... Package operations: 2 installs, 0 updates, 0 removals - Installing acme/lib (1.0) - Installing composer-fallback/php-http.client-implementation.guzzle7 (1.1)
回退到您的推荐的用户示例
{ "name": "end-user/app", "require": { "acme/lib": "^1.0" } }
composer up ... Package operations: 3 installs, 0 updates, 0 removals - Installing acme/lib (1.0) - Installing composer-fallback/php-http.client-implementation.guzzle7 (1.0) - Installing php-http/guzzle7-adapter (1.0)
替代方案
贡献
此存储库是自动生成的。如果您想贡献并提交问题或拉取请求,请使用 composer-fallback/generator。