php から groonga を使うにはこんなコードになるよ!
DESCRIPTION
2014/09/03 ConoHa presents - Groonga "How-To" TalksTRANSCRIPT
PHP からGroonga を使う
にはこんなコードになるよ!2014/09/03
ConoHa presents – Groonga "How-To" Talks
do_aki
@do_aki
@do_aki
http://do-aki.net/
SIDE
立場
蒼翠
このは派
あんず派(C)GMO Internet, Inc.
あんず派(C)GMO Internet, Inc.
以上
access methods HTTP GQTP Direct
access methods• socket ・ stream ・ curl• nise-nabe/groonga-http-php
HTTP
• socket ( たぶんできる )• groonga-php (groonga bundle)
GQTP
• phroonga (rsky)• proonga (Yujiro3)
Direct
HTTP
nise-nabe/groonga-http-php
• guzzle を利用した groonga http client
• curl or stream• php >=5.3.0• packagistcomposer.json{ “require”: { "nise-nabe/groonga-http-php": "dev-master" }}
Sample Code
• https://gist.github.com/do-aki/419953a481d0289ffbbb
• Client を new して コマンドに対応したメソッドを呼ぶ形
• エラーは例外として補足できる• シンプル
GQTP
groonga-php
• groonga bundle の gqtp client• fedora 用の RPM ( 野良 ?) => オフィシャルだそうで
す
• php extension “groonga”
$ cd [groonga-source-dir]/bindings/php$ phpize$ ./configure$ make
$ php -d extension=modules/groonga.so sample.php
Sample Code
• https://gist.github.com/do-aki/d91584e38efd9f844d30
• 最低限の実装• このままつかうのはシンドイ• エラー内容を補足できない
Direct
ふるんが!
phroonga (php-extension)
• https://github.com/rsky/phroonga
• php extension “groonga”• 4 系で動かなかったので手を入れた
$ git clone https://github.com/do-aki/php-phroonga$ cd phroonga$ phpize$ ./configure$ make
$ php -d extension=modules/groonga.so sample.php
Sample Code
• https://gist.github.com/do-aki/b855f211f5a301f60920
• select 出来ない• 実用段階にない
The PHP bindings of Groonga.
proonga (php-extension)
• https://github.com/Yujiro3/proonga
• php extension “groonga”• サンプルとてもよさげ
• CentOS6 上の php5.5 で動かず……• PHP Fatal error: Internal zval's can't be arrays, objects or resources in Unknown on line 0
ここまでのまとめ
HTTP => シンプルだけど使え
る
GQTP => エラーを補足できな
い
Direct => Umm…
現状 HTTP 以外に選択肢なし
dooaki/php-phroonga
• 今作ってるもの• php >= 5.5.0• trait ( クラスに機能を付与 )• 遅延評価 (generator を利用 )• 各種プロトコルに対応可能 (http 以外まだないケド )
• Active Record like (にしようかなー )• https://github.com/do-aki/php-phroonga• (https://gist.github.com/do-aki/b36c64e066bb947ea825)
php の新しい機能を使ってみたかっただけ
まだまだ使い方や挙動含めインタフェースが大幅に変わる可能性高いので注意
まとめ
• 今のところ、 http でのアクセスが確実• パフォーマンス必要なら別言語かな……
( http と gqtp でどれだけ違うか判らないけど)
• php でぐるんぐるんする人少ない?=> 第一人者になれるチャンス
• dooaki/phroonga は気長にやるつもり
Question?
ありがとうございました
2014/09/03 ConoHa presents –
Groonga "How-To" Talksdo_aki