書こう書こうと思ってて後回しにしていたことですが、
amfphp1.9をそのまま使ってるともったいないですんです。
amfphpの前リーダであるPatrickさんの5 1/2 blogの
Amfphp 1.9 beta 2 - ridiculously fasterというエントリからの話です。
・・・もう一年近く前のエントリなんですけど^^;
てっとり早く結論
結論から書くと、AMFのエンコードとデコードを行う
AMFEXTというextensionがありますから、
そのextensionをPHPにインストールしておくと
amfphp1.9がextensionを認識して、高速に動作するようになる、ということです。
Patrickさんによると
We've tested it through and through, it is very stable, and let me tell you, it is ridiculously fast.
テストにテストを重ねてみたけど、とても安定していて、言わせてもらうなら、これめっちゃ早いで。
とのことです。(いつもながらに適当訳)
で、どうするか
AMFEXTのサイトからソースやバイナリがダウンロードできます。
Windowsユーザなら、バイナリのzipをダウンロードすると、
bin/windows以下にPHPのバージョンごとのdllがありますから、
使っているPHPのバージョンに該当するdllをPHPのextensionディレクトリに放り込んで
php.iniにphp_extension=php_amf.dllと追記して、Webサーバを再起動すればよしです。
Linuxユーザの場合は、phpizeを使ってPECL拡張モジュールとしてコンパイルできるそうです。
これは試してないので、説明ができません^^;
Linuxの場合は、php.iniにextension=amf.soを追記です。
extensionのセットアップが完了したらphpinfo()を実行するとamfの項目がでてきます。
で、amfphpのgateway.phpに直接ブラウザからアクセスしてみると、
「AMF C Extension is loaded and enabled.」の一文が増えてます。
後はextensionの力で高速になったamfphpが使える、ということですね。
ところが色々ありまして
AMFEXTを有効にした状態で、S2Baseのamfphpプラグインを使ってみたんですけど
どうもS2Dao_ArrayListのマッピングが変わってるみたいで、
AMFEXTを有効にしていない時のソースコードそのままでは動いてくれませんでした^^;
原因を調べてみないと、と思ってそのままになっていたので
AMFEXTの話を書いてなかったんです。^^;;
で、思い立ってちらっとソースを見ていると・・・AMFEXTってPHPライセンスじゃありませんか。
と、いうことは、AMFEXTを使った成果物はASL2.0に移行できる・・・のかな?
考えてみればエンコーダとデコーダがあるってことは、
amfphpでいうところのGatewayを作れば、S2AMF.PHP5・・・ですか?
ようやくコミッタらしい何かができますか?
そしてまたなれない翻訳大会の開始ですか?
amfphp1.9にはgzipサポートの機能があったり
Amfphp 1.9 beta 2 - ridiculously fasterには、
amfphp1.9の新機能の紹介が色々と書かれています。
amfphp1.9は、まだ公式サイトのドキュメントに落ちてない状態ですから
Patricさんのこのエントリを参考に色々と試してみるのもよいかと思われます。
amfphp2.0はどうなるかな。
SourceForgeの方では、ちょっと動きがないようですが。
追記
AMFEXTのサイトに書いてあるのですが、
AMFEXTってPECLでも公開されています。
PECLのはVersionが0.9.1になってますから、
AMFEXTのサイトにある0.9より新しいということになると思うのですが、
なんかヘッダファイルの更新日時が微妙ですね・・・^^;
そして、amfphpのSorceForgeのCVSにはAMFEXTが置かれてますね・・・。
こっちの方は最終更新が3/22ですから、うーん^^;;
AMFEXTのサイトには、SorceForgeに移行するよって書いてあるんですけど
一体どこに・・・あるんだろう・・・。
PECLのが最新版と思えばいいのかな・・・^^;;;