cURL バックエンドでプロキシ経由の SimplePie フィードを取得する
フィードを初期化する前に、SimplePie の公開 cURL オプションでプロキシ設定を渡し、中間プロキシ用の認証を構成します。
まず SimplePie が既定の cURL フェッチャーを使っていることを確認します。PHP の cURL 拡張が必要で、アプリケーションが fsockopen を強制してはいけません。ソケットによるフォールバックは cURL オプションを読みません。
この既定の経路では、init の前に設定します。
$feed = new \SimplePie\SimplePie();
$feed->set_feed_url('https://feeds.example/news.xml');
$feed->set_curl_options([
CURLOPT_PROXY => 'http://proxy.example:8080',
]);
$feed->init();
set_curl_options はこれらの値をフェッチャーに渡すため、インストール済みの File.php を編集する必要はありません。HTTP プロキシ一覧の HTTP エントリは、その経路が許可されプロキシ資格情報が構成されていない場合、公開フィード用のサンプルプロキシ URL を提供できます。認証には、受け入れられる CURLOPT_PROXYAUTH 方式を選び、CURLOPT_PROXYUSERNAME/CURLOPT_PROXYPASSWORD を指定します。CURLOPT_HTTPAUTH は代わりに宛先に使われます。
set_http_client で注入した HTTP クライアントでは、その独自のインターフェースでプロキシを設定します。既定フェッチャーのオプションでは別のトランスポートを構成できません。既定の cURL 認証経路については、PHP cURL のプロキシアカウント設定を参照してください。
経路を確認するときは、新規取得とキャッシュ済みフィードを区別します。既存の項目が表示されることは、新しいダウンロードが変更後のプロキシを使った証拠にはなりません。