2013」の9日目です。この記事では3種類の解決法をご紹介しますが、他のサイトではこのうち1種類のみを紹介している場合がほとんどです。どの方法が適切かは状況によると思いますので、自己判断でお願いします。maruTAPEAR/XML_RPC2がプロキシ設定を無視しているバグを踏み抜いたコメントを残す卒業研究で製作して今調整中のライブラリがあるのですが、そのサンプルのために利用しているPEARのXML_RPC2でプロキシが利用できないバグを踏んでしまいました。Requestを送ってあるのでマージ待ちですが、このバグの概要と修正箇所を記録しておきます。概要XML-RPCのWebサービスをPHPで利用する方法の1つとして、PEARのXML_RPC2パッケージの利用があります。詳しい使い方については公式のドキュメントを参照していただくとして、HTTPプロキシ経由で利用する場合は以下のようなコードになります。$option);今回のバグは、このproxyオプションを設定したとしても、内部で使われているXML_RPC2_Util_HTTPRequestオブジェクトのsendRequest()メソッドで設定値が参照されないことによりプロキシ設定が無視されてしまいます。修正XML/RPC2/Util/HTTPRequest.phpを次のように変更します。※Githubの方が見やすいかもしれません。HTTPRequestオブジェクトのsendRequest()メソッドで、定義されていない配列変数$paramを参照しているため、コンストラクタやXML_RPC2_Client::create()で設定したプロキシ設定が完全に無視されてしまっています。コンストラクタと全く同じ処理が走っているので、このような形で修正してみました。まとめいくら検索してもプロキシが通らなくて最終的にコードを追う羽目になり発見した次第です。PEARには自分で実装するには骨が折れるような機能を提供しているにもかかわらずメンテナンスされていないパッケージが幾つかあります。Requestを送ってよりよい形にしていけるといいのではないでしょうか。find()の引数でデータをソートして取得したかったコメントを残すんです。}こんな感じに、find()の第2引数にオプションとして放り込めばソートできました。orderの値にはソートするフィールドを指定します。参考までに、実行されているSQL文はこんな感じでした。