11/22に開催された第六回闇PHP勉強会に参加してきました。「光の当たらないところ」という意味で闇であるとか。約1年半ぶりの開催ということですが、私ははじめての参加です。初めてなのにスピーカー参加です。以下、感想など。

各発表内容の感想

@hnwさん「OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた」

PHP7の新機能、OPcacheファイルベースキャッシュの解説です。
メモリでのキャッシュが10倍速いならファイルでのキャッシュは4倍速いとする一方、キャッシュキーの持ち方やらシリアライズの方法やらいろいろと課題がありそうです。

まだexperimental扱いということなので今後変更があると思いますが、現時点ではメリットが薄いなぁという印象です。ユースケースが思いつかないというのがスライドの通りです。

@noldorinfo「SQLite2と3のエスケープ関数の違いとその対策」

自分の話してきた内容です。
今更SQLiteのエスケープ関数ですが、そういう罠があるよーということを頭にとどめておくことと、PHPでのバイト列操作についての参考になればと思います。

@do_akiさん「astの話」

PHP7の構文木がAST(Abstract Syntax Tree)に変わったよという話ですが、ASTに変換したものをフックで拾えるよという話が主眼のように感じました。

フックでASTを改変することで最適化が可能になるというのがメリットとのことです。このメリットは大きく、PHP7の高速化の余地が広がっているように思います。

デモではフックで得たASTをグラフ化して表示していましたが、今考えてみると上記OPcacheファイルキャッシュが有効の場合フックされるんでしょうか? ASTの取得方法は工夫が必要かもしれません。

@rskyさん「php-mecabをPHP7に対応させた話」

PHP5の自作拡張モジュールをPHP7に対応させた際の気づきなどの話でした。
「PHP5と7の拡張モジュールのソース一本化は無理!」とばっさりです。PHP7は文法はそんなに変わりませんが中身は大きく変わっているので、それはそうですよね。拡張モジュール作者に勇気を与えてくれたのではないでしょうか。

@yoyaさん「PHP拡張のPHP5=>7対応」

同じくPHP5の自作拡張モジュールをPHP7に対応させた際の気づきなどの話ですが、今度は「PHP5と7のソース一本化できたよ」と、先ほどの逆を来てくれました。
モジュール本体はpure Cで書かれていて、PHPとの結合部分だけをファイル分割したとのこと。疎結合の重要性が感じられました。

@strysdさん 「Zend Framework 3 と Zend Expressive の話」

海外で行われたZendCon 2015のフィードバックです。

いろいろと夢のある話だったようですが、こう、スライドには書かれていないネガティブ印象盛りだくさんで、はい。Zend Framework 3には近づかないほうがいいかなと思いました。

まとめ

初参加だったのですが、普通のPHP勉強会では絶対に話せない内容ばかりで楽しかったです。PHPのコード、スライドに全然ありませんもの。なのにC言語はコード差分すら登場しますもの。何の会でしょう。長さ1の配列を構造体の末尾に置くテクニックはまだあるんですね。それがサラッと流されるとか、みなさんどれだけCに精通しているんでしょう。

参加のハードルは高めですが、ネガティブな見方を交えつつ話される会は貴重です。

次回は半年後ぐらい目途ということで――ネタを用意できる気がしないですね、精進します……。