重载 symfony2 vendor class 以将 curl verify_peer 选项设置为 false

Overload symfony2 vendor class to set curl verify_peer option to false

使用带有 symfony2 的 Payum 捆绑包,我有共同点 unable to verify ssl certificate 错误。

我无法通过更改 php.ini 中的 curl 选项或在我的 php 代码中设置 curl 选项来摆脱它。

但是,修改 vendor/kriswallsmith/buzz/lib/Buzz/Client/AbstractClient.php class 并将默认 $verifyPeer 选项设置为 false 最终允许我在本地使用 Payum 和 PayPal 快速结账。

编辑: 我也可以覆盖使用另一个的 class 。我觉得这样更安全:

vendor/payum/core/Payum/Core/Bridge/Buzz/ClientFactory.php

如何覆盖此 class(理想情况下,即当我在本地工作时处于开发模式)?

您可以覆盖服务 payum.buzz.client。只需在 PayumBundle 之后注册的包中定义它。

<service id="payum.buzz.client" class="Buzz\Client\ClientInterface"     factory-class="Payum\Core\Bridge\Buzz\ClientFactory" factory- method="createCurl">
        <call method="setVerifyPeer">
            <argument>false</argument>
        </call>
</service>

或者在 yml 中

services:
    payum.buzz.client:
        class: Buzz\Client\ClientInterface
        factory_class: Payum\Core\Bridge\Buzz\ClientFactory
        factory_method: createCurl
        calls:
            - [setVerifyPeer, [false]]