KyotoTycoon の PHP 版を作った

KyotoTycoonPHP のライブラリを作った。


このライブラリは PerlCache::KyotoTycoon を移植したもの。
自分の Perl の勉強を兼ねていて、Perl 版の詳細は id:tokuhirom さんのポストを参照。
http://d.hatena.ne.jp/tokuhirom/20101012/1286864973


Perl のは名前空間が Cache や TSVRPC だが、PHPid:cocoiti さんの Net_TokyoTyrant に合わせて、KyotoTycoon は Net パッケージに、TSVRPC は HTTP パッケージにしている。


TSV-RPC のクライアントが HTTP_Request2 を使用している関係から HTTP_Request2 に依存している。
Zend_Http の方が好みだったが、ちょっと依存モジュールが多かったので見送り。
# Zend_Validate* とかに依存してる


Perl 版は Curl を内部で使用しており、PHP 版も curl 関数をラップした HTTP_Request2_Adapter_Curl を使用していたが、Socket を使った方が速かったので、デフォルトは Socket としている。
# Client は setter があるのでクラス外で生成してセットする事が可能


あと echo というメソッド名は PHP予約語として使用されているので使えなかった。
こればっかりはどうしようも無いので、echoBack としている。


動作環境は PHP5.3 以降必須。
PHP5.2 で動くようにするのは KyotoTycoon.php の方はたいして手間じゃないんだけど、TsvRpc/Client/Parser.php で無名関数を使ってて、これを書き換えるのは大変なのでパッチ下さい。
また MacOS 10.6 でしか動作確認してない。手元に Linux ないので後で確認する予定。


テストは全然足りてないけど、最低限の動作は確認したのでとりあえず Github にあげておく。
# tests にあるものしか試してないので要注意
GitHub - heavenshell/php-net-kyototycoon: Client library KyotoTycoon for PHP


Openpear にはテストを少なくとも Perl 版と同等のものが揃った時点でアップ予定。
あと RESTFul なクライアントは今後追加する予定。