最近Silex始めました。
まずは外部のWebServerにリクエストを投げる方法です。軽量なWebClientであるBuzzを使います。gitでBuzz本体とProviderをダウンロードします。
$ cd vendor/ $ git clone https://github.com/kriswallsmith/Buzz.git Buzz $ cd Buzz/ $ git checkout v0.5 $ git submodule update --init $ cd .. $ git clone https://github.com/marcw/silex-buzz-extension.git silex-buzz-extension
src/bootstrap.phpに追加します。
$app['autoloader']->registerNamespace('MarcW', __DIR__ . '/../vendor/silex-buzz-extension/lib'); $app->register(new MarcW\Silex\Provider\BuzzServiceProvider(), array( 'buzz.options' => array( ), 'buzz.class_path' => __DIR__ . '/../vendor/Buzz/lib', ));
これで準備完了です。あとはアプリケーションから
$app['buzz']->getClient()->setTimeout(30); $response = $app['buzz']->get('http://www.google.co.jp'); echo $app['buzz']->getLastRequest()."\n"; echo $response;
として呼び出すことができます。Buzzのデフォルトのタイムアウトが5秒で、早すぎたので30秒に変更しておきました。