おぎろぐはてブロ

なんだかんだエンジニアになって10年以上

PHP拡張勉強会を考えてみる

PHP勉強会では、フレームワークからPEARライブラリ、拡張の作り方から正規表現の動作まで、発表のジャンルも幅広くやってます。とはいえ、PHP勉強会という名目上(、というか、発表内容が直前に出てくることが多いので)、あんまりディープな話はできないかなーというのがある。
で、PHPコード読書会の話*1から話がそれて、PHP拡張やxdebugの読書会とかという話が出てきた。

@cocoitiban C勉強会!!

Hideyuki SHIMOOKA on Twitter: "@cocoitiban C勉強会!!"

@cocoitiban xdebug読書会++!PHP勉強会でやるネタじゃないでしょうけどw

Sotaro Karasawa on Twitter: "@cocoitiban xdebug読書会++!PHP勉強会でやるネタじゃないでしょうけどw"

PHPの範囲とはいえ、言語がC言語になっちゃうので、PHP勉強会でやるにはずれているかなというのがあるので、C言語縛りの分科会を作ってもいいんでないかなぁと。「PHP拡張分科会」的な。

なんとなく思いついたことを箇条書き

目的

PHP拡張の作り方を勉強することで、C言語もある程度使えるようになること、Cレベルの実装を見ることで、PHPの理解をより深めること。
PHPソースコードがCの勉強にいいとは思えないんですが、「こういう動きをする拡張を書きたい」→「あの関数を見れば分かる」とか「なぜこの関数がこういう動きをするのか」→「こういうクソ実装になってるからなのか」と、CとPHPの世界を行き来することで、PHPの理解をより深めることができます。

対象者

C言語触ったことがあるくらいのひと。ポインタ、構造体あたりくらいまでなんとなく分かるひと。
コード書かないと理解できないから、ノートPC持ち込みで?

やる内容

いろいろ考えた!

  • PEAR::CodeGen_PECLを使ったExtensionの作り方
    • 簡単にExtensionを作れるようになりたい
  • もっと実用的な作り方
    • CodeGen_PECLでは設定できないこととか、配列の操作とか、MINIT・RINITとか
  • テーマを絞った読書会
    • 配列の操作とか、あの関数の実装はどうなってるかなど、役に立つところから、==比較の動作であるとか役に立たないことまで
  • xdebug読書会
    • PHPのフックしどころが満載で、いいとは思う
  • Sara本 (か、Saraのプレゼン資料)に沿った読書+実践
    • Sara本(→Extending and Embedding PHP (Developer's Library))は拡張を書くのにとてもよい参考書なのですが、洋書だし安くもないので (でも、現時点だと5000円くらいなので焼肉1回分くらいだから悪くはないな)、参加者が買うのに躊躇しそう
    • Saraの講演資料はとても素敵なので、それをベースに、読み進めながら解説+実践のパターン
      • Saraのじゃないけど、ここの"PHP Extension Writing"の資料とか
    • PHP: PHP のコア: ハッカーの手引き - Manualの内容が充実してくれば、これもよさそうです。(ついでに和訳もしたりするとなおベターかも)

この中だと、xdebug読書会か、Saraプレゼン読書会が、テーマの設定とか何もなくて始めやすいと思いますが、敷居が高そう。

トライアル的に一度やってみるかな。。

Extending and Embedding PHP (Developer's Library)

Extending and Embedding PHP (Developer's Library)

*1:PEARライブラリの実装とか、フレームワークの実装の比較であるとか、PHPコードレベルの読書会は、これとは別に考えてちゃんとやってみたいところ