[PHP-users 35656] Re: "php-tokyo_tyrant"の実行結果によって処理を分岐したいのですが・・・

KOYAMA Tetsuji koyama @ hoge.org
2012年 1月 22日 (日) 20:06:14 JST


小山です。

2012/1/22 tt-record <tt-record @ excite.co.jp>:
> PECLのphp-tokyo_tyrantについての質問なのですが、
> マニュアル
> http://www.php.net/manual/ja/class.tokyotyrant.php#tokyotyrant.constants.types
> に書かれているTokyoTyrant::TTE_SUCCESSなどはどのようにして使うのでしょうか?
>
> 実行結果によってエラー処理など、ifやswitchにて分岐させたいのですが、
> memcachedのMemcached::getResultCode()のように実行結果のコードを取得するような関数もありません 。

実際に TokyoTyrant クラスを使ったことはないのですが、マニュアルを見ると

「失敗した場合は TokyoTyrantException をスローします。」

と各メソッドの解説に書いてあるので、例外機能ベースでエラー処理を行います。
つまり処理正常時には何もすることはありません。

 try {
    $tt = new TokyoTyrant('localhost');
    $tt->put('key', 'value');
 } catch (TokyoTyrantException $e) {
    if ($e->getCode() == TokyoTyrant::TTE_REFUSED) {
      // connection refused の場合のみの処理
    }
    // なにかエラー処理
 }

などのように、エラーが起きた時のみそれに合わせて処理を記述すれば良いです。

> また、tokyo_tyrantのソースコードを確認したいと思うのですが、どこで見ることが出来るのでしょうか?
> /usr/local/lib/php/extension/tokyo_tyrant.soはバイナリファイルで見られませんし、構造とか見て定数や関数などの使い方を確認してみたいと思うのですが。

pecl install コマンドでパッケージをインストールしたのだと思いますが、

  pecl download tokyo_tyrant

でパッケージをダウンロードしてそれを展開すれば中にソースは入っていますし、github でも
ソースコードは公開されています。

  https://github.com/mkoppanen/php-tokyo_tyrant

-- 
    小山哲志
    koyama @ hoge.org


PHP-users メーリングリストの案内