使用Buzz浏览器客户端,Setter注入在Symfony 2中不起作用?

时间:2012-07-26 12:07:56

标签: symfony dependency-injection ssl-certificate buzz

我在自定义服务Skebby中使用kriswallsmith/Buzz浏览器。以下是config.yml,请注意致电setVerifyPeer(false)以禁用SSL证书验证:

# cURL client
buzz.client.curl:
    class:  Buzz\Client\Curl
    public: false
    calls:
    - [setVerifyPeer, [false]]

# Buzz browser configured to use cURL client
buzz.browser:
    class:     Buzz\Browser
    arguments: ['@buzz.client.curl']

虽然Skebby本身已注明schmittjoh/JMSDiExtraBundle

/** @Service("skebby") */
Class Skebby
{
    /**
     * @InjectParams({
     *     "browser"    = @Inject("buzz.browser"),
     *     "translator" = @Inject("translator")
     * })
     *
     * @param \Buzz\Browser $browser
     * @param \Symfony\Bundle\FrameworkBundle\Translation\Translator $translator
     */
    public function __construct(Browser $browser, Translator $translator)
    {
        $this->browser    = $browser;
        $this->translator = $translator;
    }

    public function getCredit()
    {
        var_dump($this->browser->getClient());
        die();
    }
}

不幸的是,调用(在控制器内部)$this->get('skebby')->getCredit()显示服务容器发生了错误:

object(Buzz\Client\Curl)[4905]
  private 'lastCurl' => null
  protected 'options' => 
    array (size=0)
      empty
  protected 'ignoreErrors' => boolean true
  protected 'maxRedirects' => int 5
  protected 'timeout' => int 5
  protected 'verifyPeer' => boolean true

verifyPeer仍为true,因为调用setVerifyPeer(false)从未发生过。我的配置有问题吗?

有用的链接:

1 个答案:

答案 0 :(得分:2)

calls指令

下的缩进错误

应该是:

buzz.client.curl:
    class:  Buzz\Client\Curl
    public: false
    calls:
        - [setVerifyPeer, [false]]

在您的版本中,它不会调用任何内容;)