HTTP_Clientでクッキーを操る
今日はHTML_QuickFormに引き続き、HTTP_Clientにも悩まされる日だった。
やりたいことはHTTP_Clientでクッキーを操作すること。HTTP_Client自体はHTTP_Requestのラッパーなので、クッキーを扱うことができるし、HTTP_Client_CookieManagerなるクラスもエンドユーザー・ドキュメントには記載されているので、簡単にできると思っていたが、使い方がわからないし、クッキーの取得の仕方がわからない。
仕方なく、HTTP/Client.phpを直に見て、探ってみると、エンドユーザー・ドキュメントにはないものがいくつかあった。隠さずに表に出してくれよ・・・
まず1つ目は、HTTP_Clientクラスのコンストラクタには第3引数が指定でき、それはHTTP_Client_CookieManagerであるということ。これによって、自前で用意したHTTP_Client_CookieManagerクラスを使いまわすことができる。詳しく言うと、一度保存したHTTP_Client_CookieManagerクラスをもう一度ここに代入することでクッキーを再現できるということ(だと思う)。
そして、2つ目は、HTTP_Clientクラスには内部で保持しているHTTP_Client_CookieManagerを出力するためのgetCookieManager()メソッドが用意されているということ。phpDocumentorのマニュアルには載っていたが、エンドユーザー・ドキュメントにはどこにも載っていない。これで、HTTPアクセスのときに使用したクッキーを保存することができる。
この2つをあわせれば、HTTP_Clientでクッキーを再現できる(と思うのだが・・・)。
それにしても・・・この手の日本語の資料は全くと言っていいほどないですね。みんな使わないのかな・・・