0
私はLightspeedサーバーを実行していて、組み込みのLSキャッシュを使ってページをキャッシュしています。Guzzleがリクエストを正しく起動しない
ページが保存されるときにキャッシュにパージ要求を発行するプラグインを作成していますが、Guzzleがバッチリクエストを正しく送信できないようです。
Guzzleからエラーは発生していませんが、PURGEリクエストがサーバーに送信されることはありません。ただし、代わりにcURLを実行すると、うまく動作します。
がつがつ食う
$batch = \Guzzle\Batch\BatchBuilder::factory()
->transferRequests(20)
->bufferExceptions()
->build();
$client = new \Guzzle\Http\Client();
$client->setDefaultOption('headers/Accept', '*/*');
foreach ($paths as $path)
{
$request = $client->createRequest('PURGE', $path);
$request->setProtocolVersion('1.0');
$request->addHeader('Host', 'mydomain.com');
$batch->add($request);
}
$requests = $batch->flush();
$batch->clearExceptions();
cURLの
foreach ($paths as $path)
{
$curl = curl_init($path);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PURGE");
curl_exec($curl);
}
Guzzle 6を依存関係として追加し、このコードをプラグインしました。これでリクエストは正常に送信されました。 Alexeyに感謝します。 –