読者です 読者をやめる 読者になる 読者になる

uzullaがブログ

uzullaがブログです。

闇PHP勉強会に参加してきました

第七回闇PHP勉強会 〜あなたが闇だとおもったらそれは闇です

yamiphp.connpass.com

に参加してきました!

闇とは

以下転載

PHP勉強会について 闇PHP勉強会はPHPの内部構造や拡張モジュールなど、PHPC言語レイヤの話題が多めの勉強会です。ふつうのPHP勉強会に比べると若干マニアックな集まりだと思います。 この勉強会の名前は「普段は光が当たらない場所に光を当てるPHP勉強会」という意味です。他の闇を期待された方はごめんなさい。

ということです。

ひらたくいえば、PHPといいつつPHPの中身や、CでかかれたPHP拡張などのお話がメインの勉強会です。大変に興味深いお話が多い。

トーク内容について

@hnwさん「realpath cacheとOPcacheの面倒すぎる関係」 (20〜30分)

d.hatena.ne.jp

最近話題のrealpath_cacheのお話と、それとは違うが同様な結果となるOPcache+fastCGIの挙動のお話です。

PHPのデプロイについて様々な方法がありますが、CapistranoやDeployerをはじめとするツールでsymlink方式を採用している所が多いと思います。その場合、いくつかの罠があるとのことです。

詳しくは資料を見ていただきたいですが、個人的にまとめると…

  • realpath_cacheは、Symlinkなどが「解決されたリアルパスで」キャッシュされるので、Symlink切り替えでは(キャッシュタイムアウトまで)更新を検知できないことがある。
  • realpath_cacheをオフにしたり(〜ttl = -1や〜size = 0)、あるいはパージすることで、とりあえず解決ができる − だがしかし…(資料みましょう)

  • OPcacheはコードをキャッシュするが、Expireは設定されていないので、更新を検知できないと永遠に反映されない。

  • OPcacheはopcache.revalidate_path=0だと、pathの再解決をしない
  • 結果として、Symlink切り替えだと、Opcacheが一行にキャッシュを反映しないことがある
  • ただ、これはこれはSAPIによって挙動がちがい、mod_phpだとこれが問題にならなかったり…
  • だがしかし…(資料みましょう)

どちらの問題もコードの反映に失敗するというものですが、仕組みがちがって興味深かったです。

私はいまだにFTPでアップロードする案件もある程度の人間ですので、この挙動を把握しつつも、なんかあったらええかんじにrestartかけちゃえばいいかな!という感じもあります。

なお、質問タイムでは、「ウチではキャッシュのパージを積極的におこなったいる」などという実例の話もありました。

y-utiさん「JITのコードを読んでみた」(20〜30分)

y-uti.hatenablog.jp

これは率直にいって興味深く、まだ先の話なので全然チェックしてない所でした。

パースされたコードを見やすい(書き出しやすい)っぽいので、そのうち試してみたい。(といっていると雑事にとらわれていつまでも見ない罠)

edvakfさん「XPathソースコード検索」(LT、5分)

speakerdeck.com

関数の第三引数がないものを検索したい!という要望において、xmlにコードをパースした上で、XPathをつかうと検索しやすい!というお話。

なるほど!という感じがあります。

質問タイムでは、他のツールで同様のことをする例などが共有されていました。

@do_akiさん 「PHP AST 徹底解説 補遺」 + 「php における signal 処理の話」(20〜30分)

www.slideshare.net

www.slideshare.net

PHPでsignalは個人的にはもっとちゃんとしらべて、使える所では使ってみたいですね(不用意につかってはいけない)

7.1は見た目以上に中身が色々かわっていることを再認識しました。

sasezakiさん「このPHP拡張がすごい!2017」(LT、5〜15分)

www.slideshare.net

スライドがかわいい

速い(スライドをめくるのが)

楽しい

前回が2013だったらしいので、次は2021でしょうか、待ちます。

mpywさん「ストリームフィルタで暗号化しよう!」(LT、5分)

Mcryptが非推奨になり、PHPで逐次的にデータを暗号化する術がなくなったのでは?という話。

まあ、まだ非推奨なだけでつかえるけど、結構困るなこれ。

そして、失礼ながらハンドルネームの読み方がはじめてわかりました…。

まとめ

PHP勉強会は知らないトピックが非常に多く、質問なども活発で非常に面白かったです。

懇親会や二次会でも色々お話ができて楽しかったです、次回もぜひ参加したいですね。

会場を提供いただいていたピクシブ様にも感謝いたします。