PHPカンファレンス2021は、コロナウイルス対策のため今年もオンラインで2日にわたり開催されました。今回のカンファレンスではライブ動画をYouTube Liveで見ながら、チャットアプリのDiscordでスピーカーやスタッフ、ほかの参加者とリアルタイムで交流することができました。
本記事は2日目(10月3日)のレポートです。レポートの前編はこちらの記事 をご覧ください。
なお、カンファレンスの録画がYouTube上にあります 。あわせて参照してください。
Joshua Copelandさん「What is new in PHP 8」 - Track4
2日目のセッションは朝の10時から、Track1〜4のそれぞれで4つのセッションが同時に始まりました。2日目のTrack4は英語セッション枠として用意されており、30分〜1時間の英語セッションが6つ行われました。
英語セッションの1つ目は、アメリカ在住のPHPアーキテクチャであるJoshua Copelandさんによる「What is new in PHP 8 」です。
日本時間では朝でしたが、現地では前日の夜18時だそうです。時差はオンラインカンファレンスならではの特徴ですね。
DiscordチャットではCopeland氏の背後に多数ある、「 ElePHPant」の象のぬいぐるみが人気でした。Discordの参加者数は、PHPカンファレンス全体で、この時点で250名ほどに達していました。Youtube Liveで動画だけを見ている人のほうが多かったようです。
目次
当セッションのスライドはこちら(Google Doc) で公開されています。
リリーススケジュール
新機能
破壊的な変更(互換性のない変更)
PHP8.1の新機能
リソース(追加情報)
謝辞
以上の全6章(115ページ)とボリュームのある資料でしたが、残念ながら2章の途中で時間切れとなってしまいました。
PHPのリリースサイクル
現在、PHPは約1年おきに新しいバージョンがリリースされています。それぞれのバージョンは2年間の開発期間と、その後の1年間のセキュリティサポート期間を経て、サポートが切れます。
最新バージョンのPHP 8.0は去年の秋(2020年11月)にリリースされ、次のバージョンの8.1は今年の秋(2021年11月)にリリースされる予定となっています。PHPカンファレンスは毎年秋〜冬に開催されていますので、最新バージョンの機能をおさらいしつつ、次のバージョンの予習をするためにはちょうど良いタイミングになっていますね。
PHPのダウンロード
2021年3月に、PHPソースのリポジトリが不正に書き換えられた事件がありました。コミッターのアカウントが乗っ取られたのではなく、PHPソースが置いてあるgit.php.netのサーバーに侵入されたとしか考えられないという結論になりました。そのため、git.php.netサーバーは廃止され、これまでミラーだったGitHubのリポジトリが正規のリポジトリになりました。
PHP 8の新機能
最初に紹介された機能は、JIT(Just In Time)コンパイラーによるパフォーマンス改善です。JITはJavaScriptなどにも使われています。PHP 5の時ほど目覚ましいパフォーマンス向上はなく、Webアプリケーションを作る場合にはあまり効果を得られませんが、今後、Webアプリケーション以外の領域で効果を発揮していくことでしょう。PHPは今後、機械学習やデータ操作など、Webアプリケーション以外の領域へも広がりを見せていくと言われています。
次に、アトリビュート(Attributes) 。ほかのプログラミング言語では「アノテーション(annotation) 」と呼ばれることもあります。コードのメタ情報(利用目的など)を定義する機能で、メタ情報に基づいてコードを実行したり制限したりできるようになる便利な機能です。
名前付き引数(Named Arguments)は人気がありますね。引数に名前をつけて順不動にすることができます。関数の使い勝手が良くなる新機能です。
新しく追加されたMatch式は、緩やかな比較をするSwitch式と異なり、型と値の両方を比較する厳密な比較になっています。
ほかには、式として使えるようになったthrow、戻り値の型として使えるようになったstatic型、そしてunion型やmixed型のサポートなどを紹介しました。
徳丸浩さん「SPAセキュリティ入門」 - Track1
書籍『体系的に学ぶ 安全なWebアプリケーションの作り方』( 通称、徳丸本)で有名な徳丸浩さん(通称、徳丸先生)によるセッションです。
目次
今回の発表タイトルは「SPAセキュリティ入門 」で、当セッションのスライドはこちら(slideshare) で公開されています。
SPA(Single Page Application)のセキュリティの基礎
JWT(Json Web Tokens)をセッション管理に用いることの是非
CookieとLocalStorageの比較に対する論争について
CORSを甘く見てはいけない
どうすればよいか
徳丸先生は、PHPカンファレンスの開催前からTwitterでJWT(Json Web Tokens)のユースケースについて議論していました。「 詳しくはPHPカンファレンスでお話しします」のようにツイートしていたので、楽しみにされていた方も多いのではないでしょうか。
SPAにおけるセキュリティ
前提知識についておさらいをした上で各種セキュリティの議論に入っていましたので、もしセキュリティと聞いて敬遠してしまった方がいましたら、ぜひアーカイブ動画を見直してみてください。
SPAといっても、基本的なセキュリティ対策の方法は通常の画面遷移があるWebアプリケーションとあまり変わらないことを再確認できました。また、技術トレンドであるlocalStorageや、JWT、CORSについて理解を深められる良いセッションでした。
セキュリティというとお堅いイメージもありますが、このセッションではスライドもDiscordチャットも賑やかさを感じました。
例えば、こちらのスライドをご覧ください。
この時、Discordチャットではザワザワし始めていました。
ザワザワ。
セッションでは名指しされていましたが、近年ニュースになった、とある支払い系サービスの不具合のことですね。
Discordチャットではほかにも、「 自分の現場ではこうしている」というような事例報告や、「 自分のプロジェクトではこんな課題がある」などと報告が挙がっていました。セッションが終わった後は、チャットに残された質問に対して徳丸先生が回答コメントを寄せていました。
大LT(ライトニングトーク)大会 - Track1
2日目のTrack1のラストは1時間のライトニングトークです。1人あたり4分の持ち時間で10人がプレゼンを行います。ライトニングトークはおまけのようなものだと思われがちですが。これがなかなか、盛り上がりました。
もしPHPに自信がなくて気後れしている方がいたとしても、全く問題ありません。初心者が聞いて楽しめるテーマもありますし、初心者が発表しても必ず誰かの役に立ちます。参加者はみんなそのことを理解していますので、どんな発表でも暖かい雰囲気で迎えられていました(制限時間が来ると銅鑼(ドラ)を鳴らされるというお遊びもありました) 。
例えば、下岡葉子さんの「PHP Conference Japan 2020で当日スタッフをした話 」 。これは良いテーマだと思いました。もし初心者であっても発表しやすい内容ですし、スタッフの経験者は少ないですので、参加者に興味深く聞いてもらうことができたはずです。
個人的に面白かったトークは、つざきさんの「【超特急】「 SQLアンチパターン」 総おさらいLT 【 4分で25個】 」です。同名の書籍のおさらいですね。SQLの良くない使い方を早口で25個も紹介しました。制限時間内にすべての紹介が間に合うのか⁉というハラハラ感と、「 そうそう、あるある」といった共感、「 これは後で調べてみよう」という発見が盛りだくさんの4分間でした。
ラストのやまもとひろやさんの『カンファレンスはフィードバックが大事 』も良かったです。PHPerKaigi2021でベストフィードバッカー賞を獲得したことや、今回のイベント中に11個のフィードバックを発表者に送信したことを話しました。発表者は常にフィードバックを求めています。「 面白かった」「 自分には得るものがなかった」といった簡易的なものでもウェルカムとのことですので、セッションを聞いた後のアウトプットの一環としてぜひ活用したいものですね。
懇親会・LT
希望者のみ、カンファレンスの後に懇親会がありました。前半は小チームに分かれて、自己紹介やカンファレンスに参加した感想などを伝え合いました(Zoomに小部屋を作る機能があることを初めて知りました!) 。後半はライトニングトークの時間でした。飲食しながらでしたので、大LT大会よりも砕けた雰囲気で行われました。
まとめ
Discordチャットを利用した双方向のコミニュケーションや、リスナー同士の話し合いなど、オンライン開催ならではの良さを感じたカンファレンスでした。参加者には西日本のエンジニアや、高校生や大学生、そして子持ちのエンジニアが参加していたことも今回のカンファレンスの特徴でした。もし東京のオンサイトで開催されていたら距離や時間の制限で参加できなかったであろう方々にとって、参加のハードルが下がっていたことはとても良かったと思います。
とはいえ、対面でのカンファレンスを懐かしがる声もたくさん聞かれました。セッションの待ち時間に通路で出会った人と会話をしたり、セッションの後に登壇者に質問をしに行ったり、スポンサーブースで様子を見ながらアンケートに答えたり、そのような直接の体験が減ってしまったことによる機会損失は少なくないようです。懇親会では、オンラインでも「人と人のすれ違い」を実現できるツールについてのアイデアが出ていましたので、まだまだ解決の余地はありそうです。
来年のPHPカンファレンス 2022は、9月24日(土)と9月25日(日)に開催されます。オンラインになるのかオンサイトになるのか、あるいはハイブリットになるのかはまだ分かりませんが、今年の経験を元に、さらに良いカンファレンスになることを期待しています。