【问题标题】:Installing Omnipay with laravel 5.2使用 laravel 5.2 安装 Omnipay
【发布时间】:2016-05-08 10:31:03
【问题描述】:

我正在使用 Laravel 5.2 开发一个电子商务网站,并尝试通过 composer 安装 Omipay(支付处理库)。但是当我尝试时作曲家抛出以下错误。

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

Problem 1
- Conclusion: don't install omnipay/omnipay 2.3.2
- Conclusion: don't install omnipay/omnipay v2.3.1
- Conclusion: remove symfony/http-foundation v3.0.1
- Installation request for omnipay/omnipay ^2.3 -> satisfiable by omnipay/omnipay[2.3.2, v2.3.0, v2.3.1].
- Conclusion: don't install symfony/http-foundation v3.0.1
- omnipay/omnipay v2.3.0 requires omnipay/common ~2.3.0 -> satisfiable by omnipay/common[2.3.2, v2.3.0, v2.3.1, v2.3.3, v2.3.4].
- omnipay/common 2.3.2 requires symfony/http-foundation ~2.1 -> satisfiable by symfony/http-foundation[v2.1.0, v2.1.1, v2.1.10, v2.1.11, v2.1.12, v2.1.13, v2.1.2, v2.1.3, v2.1.4, v2.1.5, v2.1.6, v2.1.7, v2.1.8, v2.1.9, v2.2.0, v2.2.1, v2.2.10, v2.2.11, v2.2.2, v2.2.3, v2.2.4, v2.2.5, v2.2.6, v2.2.7, v2.2.8, v2.2.9, v2.3.0, v2.3.1, v2.3.10, v2.3.11, v2.3.12, v2.3.13, v2.3.14, v2.3.15, v2.3.16, v2.3.17, v2.3.18, v2.3.19, v2.3.2, v2.3.20, v2.3.21, v2.3.22, v2.3.23, v2.3.24, v2.3.25, v2.3.26, v2.3.27, v2.3.28, v2.3.29, v2.3.3, v2.3.30, v2.3.31, v2.3.32, v2.3.33, v2.3.34, v2.3.35, v2.3.36, v2.3.37, v2.3.4, v2.3.5, v2.3.6, v2.3.7, v2.3.8, v2.3.9, v2.4.0, v2.4.1, v2.4.10, v2.4.2, v2.4.3, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.4.9, v2.5.0, v2.5.1, v2.5.10, v2.5.11, v2.5.12, v2.5.2, v2.5.3, v2.5.4, v2.5.5, v2.5.6, v2.5.7, v2.5.8, v2.5.9, v2.6.0, v2.6.1, v2.6.10, v2.6.11, v2.6.12, v2.6.13, v2.6.2, v2.6.3, v2.6.4, v2.6.5, v2.6.6, v2.6.7, v2.6.8, v2.6.9, v2.7.0, v2.7.1, v2.7.2, v2.7.3, v2.7.4, v2.7.5, v2.7.6, v2.7.7, v2.7.8, v2.7.9, v2.8.0, v2.8.1, v2.8.2].

请建议我如何解决这个问题?

谢谢

【问题讨论】:

    标签: php laravel-5 composer-php omnipay


    【解决方案1】:

    由于对 Guzzle 3 的依赖,Omnipay 尚不兼容 Symfony 3 或 Laravel 5.2。Omnipay 3.0 版本的工作正在进行中,它将解决这种依赖关系。同时,我建议您使用具有长期支持的 Laravel 5.1 开发您的网站,并在稍后发布omnipay 3 时升级到 laravel 5.2

    【讨论】:

      【解决方案2】:

      要在 Laravel 5.2 中使用 Omnipay,您需要在尝试要求 Omnipay 之前明确要求 symfony/http-foundation:^2.8

      这是必需的,因为 Laravel 5.2 默认使用 symfony/http-foundation:3.0.*。然而,Laravel 5.2 被配置为也接受symfony/http-foundation:2.8.*,这也被 Omnipay 接受。

      【讨论】:

        【解决方案3】:

        来自官方文档hereImportant Note: Compatibility with Symfony 3 Event Dispatcher中提到了一件事-

        如果您使用 Symfony 3(或 Symfony 3 组件),请注意 Omnipay 2.x 仍然依赖于 Guzzle3,而 Guzzle3 又依赖于 symfony/事件调度程序 2.x。这与 Symfony 3(标准 install),因此无法安装。 Omnipay 3.x 的开发仍在进行中 目前正在进行中。

        如果您只是使用 Symfony 3 组件(例如,独立或 Silex/Laravel 等),您可以尝试强制安装 symfony/event-dispatcher:^2.8,兼容 Symfony 3 组件和 Guzzle 3.

        composer require symfony/event-dispatcher:^2.8

        所以,我试过这样-

        composer require symfony/http-foundation:2.8.*
        

        在那之后,我尝试过这个-

        composer require omnipay/paypal:~2.0
        

        还有这个-

        composer require omnipay/coinbase:~2.0
        

        一切都很好:)。

        【讨论】:

          猜你喜欢
          • 2018-07-19
          • 2016-07-15
          • 2016-03-18
          • 2018-01-08
          • 2016-12-08
          • 2018-04-16
          • 2017-07-16
          • 2016-06-20
          • 2017-01-06
          相关资源
          最近更新 更多