#phperkaigi 2023でのトークに向けて参考にした資料・発表まとめ

PHPerKaigi 2023で、チャンスをいただいたので発表をしてくるでございます。

fortee.jp

今回のトークテーマは、「10年ちょいの間でPHP界隈どんな事があったっけ・どんな感じになったっけ」について考えるような内容になりました。
そのため、過去にカンファレンス等で発信された色々なアウトプットから、大変勉強させていただいています。
そうした中で、今日に向けての進化を紐解くためには、その時々のスナップショットで「最近のアツいトピック」を積み重ねて行くことが強力なヒントになる!!と改めて感じたのです。

どうにかして、発表中にそれら全てへの言及をしたい・・という気持ちもあるのですが、そこまで上手く織り交ぜて話せるかが微妙なので、先にこちらにまとめておこうと思いました。

言ってしまえば、自分の発表とかとは関係なく、「仕事や趣味で最近のPHPに触れている人」にとっては必見・必読な内容なのでは??というのが個人的な感想です。
めちゃくちゃ面白い発表が多いし、何度も何度も観たやつが多いですね。先人に敬意と感謝を!!!!!

ってな訳で、PHP系のコミュニティ(国内)で発表されている内容で、参考にさせてもらったものを整理して羅列したいと思います。
自分の活動範囲が主にPHP Conference Japan/PHPerKaigiなので、目に入っているものはその辺りが多いかもです。

歴史ふりかえり

まず最初に、ジャブとして「年表」的なコンテンツで鉄板2つ。
・・・早速国外からの発信ですが、絶対に外すことが出来ないので言及しています。

www.jetbrains.com いつもお世話になっておりますのJetbrainsさんですね、このページは見ているだけでとっても楽しい

github.com こちらは2020のPHPerKaigiでの発表準備の際に知って、参考にさせていただいた記録です

PSR-7とその周辺

2015

sasezaki.hatenablog.com

「PSR7っていうのがあるの?なんだろう・・・・?」と思って調べてみると必ず通る記事なのでは、と思っています。

2016

www.youtube.com

PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。」は、本当に名作だと思うんですよね。すごい面白いし感動しました。
(個人的に、初めて参加したPHPカンファレンスが福岡2016だったのも楽しい思い出。この頃って「PHP7どうなの」「PHP7に移行してみた!!話」が大変賑わっていた印象がある)

www.slideshare.net

その後の改訂版的なこちらの資料も、すごく勉強になりました。
ここまでsasezakiさんの存在が偉大過ぎる。

2018

www.youtube.com

田中ひさてるさんによる「PHP-FIGのHTTP処理標準の設計はなぜPSR-7/15/17になったのか」です、発表中のご本人の言葉にもありますが、「設計が洗練されていって美しくなっていく様」のようなものも感じられて唸るばかりです。
これは先のsasezakiさんの発表と併せて観ておきたい。

ミドルウェアって・・?については、nさんの発表も理解を深めるためにとても助かる資料になっています。
先の内容が概念・抽象に関する話でしたが、こちらはミドルウエアについての話に特化して具体的に話している内容。

2019

www.youtube.com

単に「PSR-7/15の話」という括りではないですが、PSR(のような相互運用のためのインターフェイス)があるとどうなるの・・?については、sizuhikoさんのこちらの発表がめちゃくちゃ分かりやすいと思っています。
ここを抑えられると、「FWとどう付き合うか」という目線に繋がりやすいです。

2022

www.youtube.com

実際に作ってみる(ことで「怖いもの」でなくなる!)というところに繋がっていくであろう、tadsan氏の発表。
「PSR-7/15ってどんなものなの」から踏み込んだ先にある、「それをどうやって動かすの」という話に触れることで、普段のコードが”見える”ようになってくる・というキッカケを与えてくれる内容だと感じます

etc

scrapbox.io

PSRのHTTPシリーズについてまとめたもの(by tadsan)。
自分はこのまとめで初めて出会った(知った)記事もあったので、とても有り難いなぁ勉強になるぞ〜と言って喜んでいます

その他PSR

2013

www.slideshare.net

hirakuさんによるPSR-3の話ですが、「ロガーがPSR化されたことの意義」などは非常に本質的な問いだと感じますし、参考にさせていただきました。

2017

PHPカンファレンス関西2017 パネルディスカッション」、聴いてみたすぎる・・・

2021

www.youtube.com

こちらはPSR-11の話・・・をメインとした話ではないのですが、Container Interfaceについての利用(実装)の話が含まれています。
発表を聴いた当初、「いかにPSRが簡素なインターフェイスに絞り込まれているのか」というのも感じ取れる内容だなと感じました。

www.youtube.com こちらも同じく、主題は「DIコンテナ」でありつつ、PSR-11にも言及があります。

FW周り(考察とか、自作とか)

2016

後述の2019の発表の前段となるもの

2018

www.youtube.com

高品質なFWを開発している発起者ご本人による「FWに必要なもの、何を目指すべきか」みたいな話・・・めちゃくちゃ面白いので、何度も見ているセッションの1つです。
シンプルに「DIコンテナ+AOP+RESTである」と割り切っている内容は、非常に哲学を感じました。やはりFWには哲学や強烈なこだわりが必要だよな、と思わされる

郡山さんは後の「RESTの力」シリーズでも物凄く引き込まれる発表をされており、もっともっと話を聴きたい〜という気持ちになります。

2019

www.youtube.com

ルーティングの話ならFWの話ではないのでは・・?というあれはあるかも知れませんが、偉い人が「FWとは制御の逆転」って言ってましたし、ルーターがあればFWなのでは???
何にせよ「再発明をしてみる」系の話は学ぶものが多いです(今回の自分の発表と照らし合わせて)

www.youtube.com

uzullaさんのパワーが凄くてひたすら笑ってしまう・・という発表だとも思いつつ、「良いFWとは」ではなく「何を割り切ってオレオレするか」という視点は、まさに「問題をどう定義するか」という部分なので、今回の自分の発表内容を構築する上で大事なヒントももらいました。

www.youtube.com

「他人の発表を見て感化されて、やってみた!!」って良い話すぎる。コミュニティがある〜〜って感じがしました。
というメタな所をさておいてコンテンツに着目すると、「作ってみると読めるようになる」のは、正に正に〜〜!という感じで非常に面白く&参考にさせてもらいながら拝見しました。

2020

speakerdeck.com

自分のやつも入れておこう・・

www.youtube.com

CakePHPにDIコンテナが(実験的といえど)入った」というのは、色々とインパクトのある話なのではないか・・・と思っているので、itoshoさんの発表にも触れておきます。ココら辺は自分も前に書いているなぁ

設計とかFWとの距離とか

2017

www.youtube.com

個人的にもADR好きなのですが、ytakeさんによるLaravelでのADR実装の話です。
Laravelでガッツリと(たぶん大規模)な開発している人の見地から「クラスを小さくすること」について話が出てきている事に思いを馳せます。

2018

www.youtube.com

「ソフトウェアの寿命」みたいなことを考える上で、「開放閉鎖原則を十分に満たせているか」というのが肝要になってくると思います。
hidenorigotoさんの発表の面白さ・わかりやすさも勿論のこと、この発表(の前身)がPHPerKaigiでベストトーク賞を取ったというのも、何かを象徴しているのではないか・・・?とも勘ぐってみたりしています。

shin1x1さんによるクリーンなアーキテクチャの実装例である、「独立したコアレイヤパターン」についての発表。

2019

blog.shin1x1.com

2018年から継続して、洗練されていっている実例が語られます。

www.youtube.com

「FWとは 何か(どう期待するべきか)」みたいな話を考える際に、nrsさんのこの話はとても分かりやすいと感じます

www.youtube.com

PSR自体が「関心領域を限定し、その関心を抽象化して表すこと」によってパワーをもたらそうとしているものですから、抽象化については「それが何で、どうして必要なのか」と向き合う必要があります

2020

php-genba.shin1x1.com

2019のnrsさんの発表に含まれる話題にも関連する内容について触れられており、理解を深める上で聴いておくと面白いです

www.youtube.com

nrsさんの提唱する「ADOP」を扱う発表。
個人的には、shin1x1さんの「独立したコアレイヤパターン」とnrsさんの「ADOP」について触れると、「(固有名詞的な)クリーンアーキテクチャ」 の呪いみたいなものから解放される気がしていて、とても良いよな〜〜と思っています。
あと余談ですが、「YoutubeTwitterとDiscordを全部開きながらやっています」にぶったまげました・・・・

2021

「コードを適切に抽象化した先」として、Roadrunnerなどは「なるほど、そこまで出来るようになるのか・・!!」みたいな感動があり、その意味でこの発表も抑えておきたい

www.youtube.com

77webさんの発表。
「使いやすいFW(=生き残れるソフトウェアの開発を支えてくれるもの)」を考えると、こうした「FWに縛られないでいられること」は重要な点になってきていると感じます。
程よく具体的な例を示しながら「ポータブルな状態を保つ・生み出す」ことについて解説してくれている発表で、とても面白いです

www.youtube.com

こちらも77webさん、より概念的な所に位置する話。

まとめ

改めて、発表準備をするにあたって過去の記憶を掘り起こしたり、改めて出会っていない資料を探したりしながら
連綿と続くコミュニティでの語りが、まさに進化や変容を表しているのではないか〜・・・と感じて面白がっていました。
そして、自分の発表はそうした先達の方の上に乗っている・「もう既にあった話」の延長線にあるものだなーと思うところです。

自分としては、「パーフェクトPHPの特に好きだった&感謝している点」として、「FWを実際に作ってみるというアプローチを通じて、FWが”魔法みたいで怖いもの”から”ちょっと頑張るかもだけど読んで理解できるもの!!”へと変化した」のがポイントだと捉えました。hiro_yさん(2021)風に言えば「魔法のようだけど、タネも仕掛けもある。」の世界に入門できた、みたいな。

そこで、今回の発表は「今日的なFWを読める人を増やすために、抑えておくべきことは何だろう?」を考察することにチャレンジしてみています。
カンファレンスのトップバッターとしての発表は初めて*1なので、コレまでとは少し違った気分にもなっていますが、この発表を呼び水として色々な人とお話できるといいな〜と楽しみにしているので頑張ろう!という次第です。

*1:振り返ってみるとday-1の1人目!というのはありましたね