1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PHPカンファレンス2025の参加レポ

1
Last updated at Posted at 2025-06-29

  • 2025-06-28 (土)
  • 大田区産業プラザ (蒲田)

今年も参加してきたぞ!
でも前回って年末だったから、体感半年だった...。

前回の反省を踏まえて、タッチペン買ったりしといたのに、また寝坊しました:sleeping:
なぜか前日が飲酒日になりやすい...

前回

PHPの今とこれから 2025 by 廣川 類

ごめんなさい:sob: 寝坊しました。

もう秋には PHP8.5 が出るらしいね。
まったく付いていけてない...。
のでカンファの機会にざっと喋ってくださるのが、とても助かりまくる。

FrankenPHP が PHP Foundation 管轄になったので、安定感が出てきたらサービスに採用したい所存。

AIエージェントはこう育てる:GitHub Copilot Agentとチームの共進化サイクル by コボリアキラ

Copilot 微妙だなぁ、なんかうまくいかないなぁと思ってた私に刺さった講演。

どうやら AI Agent には、「定型プロンプト」と知識となる「インストラクション」を用意しないと力を発揮できないみたい。
そして、GitHubのMCPサーバーを使えば、IssueやPRの作成支援ができるようになるんだって。

まさにやりたいなぁと思ってたことの実現例を聞けてしまったので、さっそく取り組んでみようと思う。

結論が Claude 使えはちょっと笑った。

エラーハンドリングはtry-catchだけじゃない!Result型で“失敗”を型にするPHPコードの書き方 by 梶川 琢馬

PHP に Result型が増えたんかと思ったら、Rustとかの Result型を持ってこようというお話だった。

エラーには「ビジネスロジックのエラー」と「技術的なエラー」に分けられる。
このうちビジネスロジックのエラーは、エラーではなくないか?とは常日頃から思っていた。

ハンドリングの強制化のメリットは非常に高い。
でもPHPは言語仕様にはResultの概念がないので try-catch や enum 返却に勝つのは、やや難しいのではという感想を抱いた。
その成功失敗もロジックの一部として閉じ込めたくなってしまう。。。

つまり DDD やろうぜ!って話なんだろう:confounded:

お昼

そばが食べすぎて、炎天下の中をさまよってたどり着いたお蕎麦屋さん。
ご夫婦でやられてたんだけど、おいしかった。。。

(インスタみたいな写真とれない:sob:

システム成長を止めない!本番無停止テーブル移行の全貌 by さかうぇ

10億件の打刻データ...毎日何万も増えていく...恐ろしい...。

マルチテナントの最適解って何なんだろうね...。
ぱっと話を聞いただけだと、スキーマに分けたり、DBをテナントごとに分解したらいいじゃんって思ったけど、プロダクトサービスって考えるとコストは落としたいよねきっと。
デプロイ大変じゃん、DB単価上がるじゃんって...

テーブル移行の方法としては、新テーブルを用意して徐々に旧テーブルを消していく感じみたい。

・半日に1機能くらいの粒度まで落としてデプロイ
・本番環境で、新旧テーブルのクエリを比較して不一致ならログ吐き
 (やっていいかはともかく:relaxed:

がすっごく参考になった。
私もサービス作って運用したい!!!!

『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分 by AkitoTsukahara

casbin、ここ最近一番理解したいことなのだが、未だにできていない...。
RBAC と ABAC の概念までは理解している。
ただ実装になった時に、「Laravel 内にゴリゴリ書く < 外部に委任する」になる解釈にたどり着いていない...。

そんな中、本公演では casbin の考え方から、実際のビジネス要件の分解と適用までをお話してくださって、非常に分かりやすかった。
やはりどの方も日本の会社の権限割り当ては苦労してるんだなって。
(既存サービスも割り切ってできませんか、設定がめっちゃ面倒くさいの二択な気がする...)

もう数年は戦いそうだ...。

スポンサーブース

ここでスポンサーブース巡り。
イベントはスポンサーさんのお陰で成り立ってると思うので、いつもありがとうございます。:relaxed:
くじやガラポンが多くて、会話のきっかけとして楽しかったです。

そんな中、株式会社エブリーさんからまな板をいただきました!(カワイーヤッターウレシー)
料理好きなので、さっそく使わせてもらいます! :raised_hands:

そして、株式会社ビットフォレストさん(VAddy)のブースで MAMORIO もいただいちゃいました!
エアタグは知ってたけど、これめtttttっちゃ小さいの!
忘れ物多いからさっそく使います!!:sob:

ノベルティ配れる企業体力が裏山しいいいい(現実切実路線)

LaravelとInertia.jsで始めるモダンフルスタック開発 by 濱崎竜太

私のメイン講演。Inertia.js もっと流行って!!
あんまりコミュニティに出向いていない私からすると、初めて inertia.js のお話を他人から聞いたかもしれない...。(しかも Nightwatch 構築されてた神様だなんて...)

いつの間にか Laravel のコアチームがメンテナンスしてくださってるそうで、それならプロダクト採用もとてもしやすくなる。(以前からごり押し採用してましたがね:angry:

現代のシステムってとても流動的なものだと思っていて、画面設計書を書いてAPIドキュメントからAPI生成してってやってると、とてもじゃないけど時間が足りないと思ってまして。
そんな中で、LaravelとフロントFWを疎結合ながら直接結びつけてくれる Inertia.js が今後のキーになるのではないかと毎日ベストプラクティスを漁っています。

正直「フォーム」と「バリデーション」さえ、ストレスなしで共用出来たら十分じゃない?
やはり人類は Laravel に帰着すると思っている過激派なので、これからも期待していきたい。

設計やレビューに悩んでいるPHPerに贈る、クリーンなオブジェクト設計の指針たち by プログラミングをするパンダ

この講演は簡潔すぎて面白かった。
つまりこれを買えと。

今回、ユビキタス言語という言葉をいろいろなところで聞いた。
これはチーム全体で用語や概念を統一して、共通認識な言葉を作ろうという事みたい。
(ユビキタスって10年前くらいに流行ってたよね)

それがこの DDD にも反映されていると思いました。
各メソッドやオブジェクト、レイヤーはそれぞれ細分化して分類できる。
つまり言語を統一していれば、意思疎通の不適合も起きず、レビューも簡単になる。

やはり最後は人ですからね。
とりあえず本買います。

三部作の最終講演だったらしいので全編中編も探しておきたい。

PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine by 菱田裕美

ちょうど先日 RLS で実装するか、Laravel に暗黙のスコープをねじ込むか考えてたので、とてもホットな内容だった。
安全を取るならテナントごとにDBアカウントを発行するのが良いけど、大変だなぁ、といろんなことを考えていました。

DBでテナント抽出ができるなんて、知るまで知らなかった。(そりゃそうか)
Selectに限らず、UpdateもDeleteにも適用される。

ただ暗黙だと適用を忘れてたりという致命的なバグを生むらしく、テストも必須とのこと。
権限管理とともに考えていかないとなぁ。

LT コーナー

気になったところ!

・PHP 30周年!
・クイズ形式で会場を盛り上げてて拍手!:clap::clap::clap:
・PHPはもともと、Personal Home Page Tools の略(ソースあった)
 (誰やGNUパクったのは)
・n+1 って改善すると脳汁出るくらい実行時間短くなるよね。
・CoDMON さんの登壇が凄く多くて、良いエンジニア環境なんだろうなぁ...と。

おわりに

二回目だったので、変な緊張もせずに参加できてとても楽しかったです。
やっぱり私は技術トークを求めてるんだと改めて思いました。
(サラリーマンエンジニアには、なり切れないと思う今日この頃)

今回はどの講演もブースも AI をとても意識されていて、時代の変わり目にいることを実感しましたねぇ...。
みんな楽しそうにエンジニア人生を謳歌してるのを見て、そろそろ私も決断する時が来たのかもしれない。

今年は TS と Vue のにも出てみたいなぁ。
Laravel のは英語ハードル次第...。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?