「第149回 PHP勉強会@東京」で登壇してきました

始めに

2023-02-15(水)に GMO Yours で行われた 第149回 PHP勉強会@東京 で登壇してきました。 現地には30人、オンラインの視聴者は20人くらいで非常に和気藹々とした勉強会でした。

登壇

内容について

phpstan-strict-rulesでよりbetterなphpを手に入れよう というタイトルで話しました。

関連するツイートはこのあたりです。

YouTubeのアーカイブも残っているので気になる人はこちらから見てください。

https://www.youtube.com/live/k0GkmSYhtrQ?feature=share&t=7526

補足など

Emacsと申します

俺がEmacsだ

PHPStan Tシャツについて

いつぞやのイベントでたっどさんから託されたTシャツ。 日本で数人しか持っていない実はレアなやつ。

php-src を毎朝 git pull していることについて

自分の好きなプロジェクトを毎朝 git pull して変更を見る行為は季節の移ろいを感じられてお勧めです。

hanhanさんの「今週の PHP」を毎週かかさずチェックしよう

hanhan さんいつもありがとう。

皆さんは会社や個人のプロジェクトでPHPStanを入れていますか?

会場は半分くらいの方が手を上げていました。

PHPStanのlevelは5より上か下か

会場はさらに半分くらいの方がlevel5よりも上と手を上げていました。

PHPStanを入れて良かったかどうか

おおむねみなさん手を上げていました。

初期開発でPHPStan Level Maxを選択

既存のコードがない場合ほど制約を厳しくできて良いですね、という声がちらほらありました。 TypeScriptでも noImplicitAny を有効にするには初期じゃないとできない等、既存のコードベースがあるかどうかはかなり大きいです。

emptyについて

isset empty is_null の比較表をどう頑張っても覚えられないという話をしました。

出典: PHP isset, empty, is_null の違い早見表

また、 empty はそもそも使わない方が良いよねっていう共感の声もありました。

phpstanは初心者PHPerにこそ使ってほしい

PHPはとにかく落し穴が多い言語です。 ベテランのエンジニアほどPHP特有の落し穴について熱く語りがちなのですが、そもそもコードレビューで注意するよりも静的解析で検知してCIで落とすべきだと考えています。

ガードレールを敷いてあげて安全にコードを書ける環境作りこそ、駆け出しのエンジニアに対して我々経験者がやることなのではないでしょうかという話をしました。

ただ自分も年齢的には若手に分類されるので、会場にいるベテラン達には頑張ってもらいたいというあおりもかましてきました。

phpstanでちゃんと型をつけることによってJITが効くようになり高速化が期待できる

PHP8から追加されたJITについて学ぼう! にも書いたんですが、PHPのJITコンパイラは実行時に型情報を十分に取得してマシンコードを吐き出します。

なのでphpstanで暗黙の型変換を許容しないコーディングをしておけばJITにも優しくなるという得点付きです。

コーディングについて

いきなり良いPHPを書こうとせずにまずは既存のコードと足並みを合わせて書くことも重要だと考えています。 なのでemptyを使うべきではないものの、いきなり削除するのではなくて、「emptyを削除する」という合意をチーム内で取ってから置き換えていくべきです。

終わりに

PHP勉強会を配信で部分的に見たことは過去にあったが、オフラインで参加するのは初でした。 どんな人がいるのか不安でだったけどいつも見かけるPHPerが何人もいて安心しました。

発表も多少ネタを入れたのでスベったら嫌だなと不安に思っていたが、会場が非常に暖かい雰囲気だったのもあり無事に終わってホッとしています。

PHP勉強会はPHPに精通してなくても参加できるイベントであり、むしろこれからPHPを学びたい人向けの発表の方が多いので経験が少なくても楽しめるでしょう。 初心者にも優しい勉強会なのでぜひPHPに興味がある人は参加してみてはいかがでしょうか?