Yahoo曰く、XMLじゃなくてPHPの変数をそのままシリアライズして返せばいいじゃん

Yahoo! Developer Networkに設けられた、PHP Developer Centerに面白い内容があった。→Using Serialized PHP with Yahoo! Web Services

要するに、

  1. 普通、Webサービスといえばやり取りするデータのフォーマットとしてXMLを使うけど
  2. Yahoo(米国本家)のWebサービスではRESTでのリクエストで「&output=php」を指定してくれれば結果をXMLじゃなくてPHPの変数をシリアライズした状態で返してあげるようにしてみました、と。
  3. それを直接PHPのunserialize関数に読み込ませれば、データをいきなり変数化できるんで便利だよ
という話。ためしに以下のURLにアクセスしてみましょう。PHP言語での多次元配列がシリアライズされた状態が結果として返される。
http://api.search.yahoo.com/ImageSearchService /V1/imageSearch?appid=YahooDemo&query=Madonna &results=1&output=php
PHPのserialize/unserialize関数は、変数の内容をテキスト化する(又はその逆)のための機能。情報を一時的にファイル等にキャッシュしたい場合などに使われるのだが、なるほど、こういう使い方もいいかもしれない。

PHPにはXMLを取り扱うための関数はいろいろとある。しかし、

  • いろいろありすぎてどれをつかったらいいのかわからない(笑)。 (PHP マニュアルの目次のページ内を「XML」で検索すると、少なくとも3つか4つはヒットしてしまうはず。)
  • それぞれに使い方にクセがある上に、それぞれ「PHP5以上」「まだ開発中(CVSにしかない)」「要拡張モジュール(or再コンパイル)」だったりして、いったいどーすりゃ・・・
という状態になりがち。 なお、PHP純正の関数ではなくPEARライブラリのほうにXML Serializerなんてのもあって、これが一番わかりやすいかもしれない。

しかし、どんなフォーマットでデータを送る/受け取るんあれ、最終的には受け取る側のプログラム内部で多次元配列変数かなにかにしてしまうわけだから、だったらXMLなんか使わなくともはじめからunserialize関数一発で変数化できるような形で送っちゃえばいいじゃん、というアプローチ。うーん、コロンブスの卵。

なお、 この記事の下のほうに、Javaやperlなど他の言語上でデータをPHP言語のserialize形式データに変換する方法(リンク)がいくつか紹介されている。Webサービスを提供する側がPHP以外の言語で構築されている場合でもやろうと思えば可能ということだ。

ちなみに、「これからはPHP言語を積極的に使います」とYahooが公言してから早3年たったわけか。

see also:
Yahoo!、オープンソースの PHP スクリプト言語に移行(Japan.internet.com 2002.10)
One Year of PHP at Yahoo!(PHP言語をYahooで採用して1年を経て) July 9, 2003 (OSCON 2002) PDFファイル
PHP at Yahoo! October 20, 2005 (Zend/PHP Conference) PPTファイル
ITmedia エンタープライズ:Yahoo!、PHP開発者センターを開設 (2006/2)

トラックバックURL

このエントリーのトラックバックURL:
http://www.ywcafe.net/mt/mt-tb.cgi/532

トラックバック

» links for 2006-02-28 from Activity Memo the 2nd
Six Apart - Movable Type Enterprise... 続きを読む

» 白扇後継モジュールについて from PukiWiki/TrackBack 0.1
FrontPage データ構造 * ↑ シリアライズ(連想配列保存)とタテ展開 * ↑ シリアライズ * 連想配列をテ... 続きを読む

» 白扇後継モジュールについて from PukiWiki/TrackBack 0.1
FrontPage 白扇後継モジュールをつくるためのメモです。まずはデータ構造からてがけています。仕組みは単純です。 データ構造 * 汎用... 続きを読む

» Yahoo!APIを使ってみる from MLCCentreの日記
なんだか会社でもWEB2.0やらAJAXやら色々とサイトに反映させたいらしい。IT系企業じゃないけど、そっち系が好きな人がいて、とっても楽しそうに意見を... 続きを読む

コメントする

(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)


画像の中に見える文字を入力してください。