まず 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 のプロキシアカウント設定を参照してください。

経路を確認するときは、新規取得とキャッシュ済みフィードを区別します。既存の項目が表示されることは、新しいダウンロードが変更後のプロキシを使った証拠にはなりません。

関連記事