作曲家更新:缺少请求的 PHP 扩展 ext-http

2022-08-30 15:09:46

我正在使用symfony框架和作曲家创建一个php网站。

  • 操作系统: 视窗 10
  • PHP 版本: 7.3.2
  • Symfony: 4.2.3 (env: dev, debug: true)
  • 作曲家: 1.8.4 (2019-02-11)

当我尝试在项目文件夹内执行操作或尝试使用安装捆绑包时,我收到以下错误:compose updatecomposer require symfony/swiftmailer-bundle

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested PHP extension ext-http * is missing from your system.
      Install or enable PHP's http extension.

(它说“问题1”,但这是列出的唯一问题。

我已经在我的php.ini文件中寻找扩展名,但我找不到它。我是否需要手动安装扩展?如果是这样,在哪里可以找到它?

提前致谢!


答案 1

更新:可能也值得看看其他答案。由于我不再使用PHP,因此我不打算设置一个项目并尝试重新创建我遇到的问题,只是为了测试新的建议解决方案。如果另一个答案确实对你有帮助,请给它一个投票“^”,这样我就知道哪些答案是有用的。一旦一个人比这个投票多,我就会将其标记为解决方案。


解决方案已找到。由于某种原因,我的包含.composer.json"ext-http": "*"

"require": {
    "ext-http": "*"
}

删除此行修复了问题。我不知道为什么它包含,我不完全理解为什么删除它会解决问题。(是因为它正在寻找扩展名,但找不到它吗?"ext-http": "*"

(感谢所有试图帮助我解决问题的人!


答案 2

php-http是由不同的包实现的标准。 是一种 Composer 方式,用于告知您的应用程序至少需要其中一个包。有关其他详细信息,请参阅 http://docs.php-http.org/en/latest/clients.html 中名为“Composer 虚拟程序包”的部分。ext-http

与其他软件包不同,这些行实际上并没有通过 composer 安装任何东西,它们只是让 composer 检查您是否有一些必需的依赖项。通常你可以只安装相应的PHP库,例如 表示您需要安装 。在这种情况下,没有单个PHP库,而是一系列兼容的库。ext-...ext-zipphp-zip

您应该能够通过安装提供的软件包之一来解决问题,例如

composer require php-http/curl-client

推荐