Symfony2からHTTPリクエストを投げます

sensiolabs/SensioBuzzBundle · GitHub を使います。

composer.json

{
    "require": {
        "sensio/buzz-bundle": "dev-master"
    }
}

を書いて composer update します。

$ php composer.phar update "sensio/buzz-bundle":"dev-master"

Symfony2のサービスコンテナに登録するので、Resources/config/services.yml に以下を追加します。

services:
    buzz.client.curl:
        class:  Buzz\Client\Curl
        public: false
        calls:
          - [ setIgnoreErrors, [true] ]
          - [ setMaxRedirects, [5] ]
#          - [ setProxy, ['127.0.0.1:8080'] ]
          - [ setTimeout, [5] ]
          - [ setVerifyPeer, [false] ]
    buzz.browser:
        class:     Buzz\Browser
        arguments: ["@buzz.client.curl"]

認識されたか、確認しておきます。

$ php app/console container:debug | grep "buzz"

Symfony2のコンソールコマンドを作って実験です。

class TestBuzzBrowserCommand extends ContainerAwareCommand
{

    protected function configure()
    {
        $this->setName('...');
        $this->setDescription('...');
    }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $browser = $this->getContainer()->get('buzz.browser');

        $response = $browser->get('http://...');
        print "content is ...\n" . $response->getContent();
    }
}

良さそうです!