y_uti のブログ

統計、機械学習、自然言語処理などに興味を持つエンジニアの技術ブログです

第七回 闇PHP勉強会に参加しました

12 月 11 日に開催された「第七回 闇PHP勉強会」に参加しました。私の発表内容は前回の記事で紹介済みですが、皆さんの発表も大変興味深く、とても楽しい勉強会でした。会場はピクシブ株式会社さんでした。はじめてお邪魔したのですが開放的で自由な雰囲気のオフィスで、これも大変刺激になりました*1。会場提供ありがとうございました。
yamiphp.connpass.com

以下、それぞれの発表の感想です。私は、実のところ最近は仕事で PHP のコードを書いているわけでもなく、単なる趣味として PHP の処理系を眺めているだけなのですが、他の方の発表は業務上の動機が伺えるものも多く、とても参考になるものでした。

realpathキャッシュと OPcacheの面倒すぎる関係

最初の発表は、この勉強会の主催者でもある hnw さんによる「realpathキャッシュと OPcacheの面倒すぎる関係」でした。PHP の realpath キャッシュの説明、OPcache との組み合わせによって注意が必要な点など、システムの運用時にも役立ちそうな、ためになる発表でした。後半、Rasmus 氏が提案した解決方法は面白いですね。全体として問題を解決できればよいのだから、PHP 単独で万能歯ブラシを目指す必要はないということなのかもしれません。

JIT のコードを読んでみた

hnw さんの次が私の発表でした。前回の記事で紹介しましたので、そちらを参照してください。

PHP AST 徹底解説(補遺) / signal の話 或いは Zend Signals とは何か

休憩を挟んで後半の最初の発表は、do_aki さんによる「PHP AST 徹底解説(補遺)」、「signal の話 或いは Zend Signals とは何か」の二本立てでした。一本目はタイトルのとおり、PHP Conference で発表された「PHP AST 徹底解説」を補強する内容の発表でした。PHP Conference での発表を聴いたという方も、私を含めて結構いたようです。二本目は PHP 7.1 でのシグナルの扱いを説明したもので、とても分かりやすい資料、発表で理解が深まりました。私自身の発表準備で JIT のコードを読んでいた際に EG(vm_interrupt) や EG(timed_out) というコードが気になってはいたのですが、深追いせず読み飛ばしてしまっていた部分でした。この発表でちょうど知識が繋がる形になり、素晴らしかったです。

このPHP拡張がすごい!2017

LT の一本目は、sasezaki さんの「このPHP拡張がすごい!2017」でした。2013 年以降にリリースされた PHP 拡張モジュールを総ざらいという内容で、全部で 130 個のモジュールが次々と紹介されていく発表でした。時間の都合上、当然のように駆け足での紹介となったのですが*2、とても資料価値のあるスライド、発表だったと思います*3。私にとっては、ほとんどが聞いたこともないモジュールでした。ちなみに Laruence 氏の php-valgrind というのが気になっています。

XPathソースコード検索

LT の二本目は edvakf さんの「XPathでソースコード検索 // Speaker Deck」でした。こちらも、実務で出てきたニーズを真っ当に技術で解決する方向の発表で、こういうのは良いですね。XML というのは重量級なイメージがあるのが正直なところですが、いちいち DSL を学ぶのが辛いというのは理解できます。発表を聴きながら、(この内容で XML を使うなら XSLT という話になっていくのかなぁ) などと思っていたところ、最後のスライドで話題に出てきて納得感がありました。

ストリームフィルタで暗号化しよう!

最後の LT は mpyw さんの「ストリームフィルタで暗号化しよう!」でした*4PHP では encryption filters を利用することでデータを逐次的に暗号化できたのですが、PHP 7.1 で mcrypt 拡張モジュールが非推奨になってしまい、この方法に頼り続けられなくなるという発表でした*5。データ全体を一括で暗号化する方式と逐次的に暗号化する方式の得失を比較したうえで、やはり逐次的な暗号化の手段がなくなるのは困るだろうという動機から、OpenSSL で同様の使い方ができるような拡張モジュールを作れないか目下勉強中とのことでした。

懇親会など

勉強会後の懇親会もピクシブさんの社内での開催でした。当初は近くのお店に移動する予定だったようですが、参加希望者が多かったので、それならと急遽ご対応いただいたようです。こちらも大変楽しい時間を過ごせました。私は残念ながら一次会までの参加だったのですが、その後の二次会では次回の開催時期も相談されていたようです。来年 5 月の開催が目標ということで、また参加できるようにネタを用意しておきたいですね。

*1:セミナー室のような場所があるのだろうと思っていたのですが、オフィスと全く隔離されていないフロアでの開催で、かなりの驚きでした。そういう文化ができているのだろうなぁという感慨がありました。

*2:30 分発表だった 3 人のスライドの合計よりも枚数が多いということに後から気付き、衝撃を受けました。

*3:Qiita の PHP アドベントカレンダーに少々穴が空いているようですが、このスライドから気になったものを紹介していくなどすれば簡単に埋まりそうですね。

*4:この記事を書いている時点では、発表資料は公開されていないようです。

*5:mcrypt 拡張モジュールは PHP 7.1 で非推奨になり、PHP 7.2 でコアから外されて PECL に移される予定です。PECL からインストールすれば今後も利用できると思われますが、言語に同梱されなくなるという点で影響は大きいのかもしれません。