荻原さん(id:i_ogi)主催のPHP拡張勉強会の第一回にいってきた。
初のサイボウズラボ。
(id:shimookaさんによる写真にちょっと写った)
http://photozou.jp/photo/show/106524/6875339
詳しい資料は荻原さんがアップしたこちらで。
http://www.slideshare.net/ogi/1php
とりあえず自分向けノート
Cであることはメリットでありデメリットである - メモリリークとかやばい runkit, operator 言語そのものの拡張 Sara講演資料、ソースコードくらいしか、まともなドキュメントがない・・・? Extending and Embedding PHP - だいたい網羅されている 青マンモスにも少し書いてあるらしい バイナリ互換:5.1 -> 5.2というのは無理 PHP5 SPL - 参考になる SimpleXML - 極めてる感じ わかりやすくなっている PHP6 Unicodeの影響 まだ考えなくていいかな... >> @Y! filter拡張の社内実装 PHPを「プラットフォームとして利用」 CodeGen_PECL: PHP5でしか動かないが、4と5で動くソースを作る 昔はext_skelというコマンドでした。(まあ忘れていいだろう) Spec file モジュール名が必須 依存関係とか(library, platform, other extensions) 関数: MINIT, RINIT, ... PHPの動作時に自動的に呼ばれるもの PHPの起動時(M)、リクエストに対して(R) 関数の命名規約 モジュール名をベースに。 module-name: study1 function name: study1_func() ini : study1.ini.... 関数を作る! prototypeを作る。 マニュアルの書き方と同じにする。 void funcname(void); int funcname(int param); ... string funcname(string param1, [[, string params], ---]); object ... 可変引数やら 今日書いてみる関数 void study1_greeting([string name]); - 引数は任意、戻り値なし。nameに応じて 内部的にどのように変換されるかなどはPEAR::CodeGen_PECLのマニュアルを参照。 http://www.m-takagi.org/docs/php/CodeGen_PECL/ http://php-baustelle.de/CodeGen_PECL/manual.html make testでextensionが読めない問題については何かしらの修正案があるといいな php -mでloadされているextensionが表示される。 php -dextension=study1.so -r "study1_greeting();" extname.h: ZEND_BEGIN_ARG_INFO_EXあたりで参照渡しやらなんやら extname.c MINITとか MINFO: PHPINFOを呼んだときの。 PHP_FUNCIONというマクロ do { } while(0); の中に実際のコードが書かれている PHP_FUNCION(study1_greeting) zen_parse_parameters( 引数の仕様 )
懇親会
id:amachangに会った!
優秀な人は日本の企業でがんばろうっていってた。
たくさんの人と会うのは確率の問題で、自分がついていきたい人を見つけられるかもしれないからって言ってた。
生で聞くとまたちょっと違うなあと思った。
単に言っているだけの人と、行動が起こせる人の違い...
そういえば、行動と言えば、BTOことウノウの尾藤さんが、懇親会の最中にコード書いてた。
この熱意みたいなものは見習わなきゃいけないなあと強く思った。