採択
2025/07/18 17:00〜
ルームA
レギュラートーク(20分)
初心者向け

PHPからはじめるコンピュータアーキテクチャ

tomzoh 長谷川智希

現代のコンピュータはハードウェアから私たちプログラマが書くプログラムの動作までの間が多くのレイヤーに分けられて動作しています。
レイヤーは自分より下を抽象化し、下のレイヤーを詳しく理解しなくても多くの場合プログラマはプログラムを書けます。
一方、プログラムが期待した様に動作しない時には下のレイヤーの動作の理解が問題の解決の助けになることもあります。

このトークでは私たちが愛するPHPをスタート地点にして、「VMって何?」「 PHPやJavaとC言語の根本的な違い」など、コンピュータプログラムがどの様に動作するのかを解説します。

コンピュータのレイヤー構造を理解すると、いままでは見えていなかった角度からプログラミングを楽しめるようになります。
このトークを通じて、低レイヤーが好きになったり、いろいろなレイヤーで面白いことをしたりする方が増えることを期待しています!

4
採択
2025/07/18 17:30〜
ルームA
レギュラートーク(20分)
初心者向け 初登壇

PHPUnitの限界をPlaywrightで補完するテストアプローチ

yuzneri ゆずねり

PHPアプリケーション開発では主にPHPUnitを使い、ユニットテストを書いていると思います。
PHPUnitは個々のクラスやメソッドをテストするのが得意なツールですが、実際のユーザがブラウザを通して体験するJSやCSSまで含めたレンダリング結果や、複数のページ遷移を伴う複雑なフローへのテストは苦手です。
こんな時にPlaywrightを使うとフロントエンドのテストが効率的にできます。実際にブラウザを動かしてテストを行うツールであり、ユニットテストが苦手としている領域をカバーすることができます。
一方でPHPUnitと比べ実行速度は遅く、メンテナンスのコストも高くなる傾向があります。

本トークではPlaywrightでできることを紹介しつつ、PHPUnitとPlaywrightの特性に沿ってテストをかき分けることでテスト時間を短縮し、より安心してリリースできる環境作りを紹介します。

3
採択
2025/07/19 13:20〜
ルームA
レギュラートーク(20分)
関西勢(在住or出身)

遊びながら強くなる!コードゴルフで学ぶPHPの言語仕様

takaram71 荒巻拓哉

コードゴルフという競技をご存知でしょうか?
与えられたお題に対して、どれだけ“短く”コードを書けるかを競うもので、今年3月のPHPerKaigi 2025では「PHPerコードバトル」として開催され、大いに盛り上がりました。

コードゴルフでは、可読性や保守性は重視されず、むしろ犠牲にしてでも短く書くことが求められます。
一見実務とは無縁に思えるかもしれませんが、実はこの競技、PHPの文法や関数についての深い知識が求められるため、楽しんでいるうちに言語仕様に詳しくなってしまうという学習効果もあるのです。

このセッションでは、コードゴルフで実際に使われるトリッキーなテクニックと、それを支えるPHPの言語仕様や関数の挙動について解説します。
例えば、PHPの文と式の違い、普段あまり使わないマイナーな関数の仕様など、ちょっとした遊びからPHPの理解が深まる世界をご紹介します!

6
採択
2025/07/19 13:20〜
ルームB
レギュラートーク(20分)

PHPでやってみよう!テストだけじゃない、デシジョンテーブル(決定表)実装の勘所

katzchum katzumi

デシジョンテーブル(決定表)といえばテスト設計の手法として知られていますが、PHPでの実装パターンとしても非常に強力です!
複雑な条件分岐をif文の入れ子で書くと保守性が低下しますが、決定表を使えば条件と結果の組み合わせを表形式で美しく整理できます。

登壇者は実際の業務で、条件の組み合わせが数千パターンにも及ぶ大規模な決定表を実装してきました。
この経験から得たノウハウと実践的なテクニックをご紹介します。

  • 複雑な条件をわかりやすく可読性を上げる
  • 決定表の定義誤りを防ぐ
  • 時系列で変化する決定表の表現方法
  • 決定表の評価のバグを検知する
  • 決定表をアプリケーションだけでなく、テストでも活用する

明日のプロジェクトですぐに活用できる実装パターンをお伝えします。
難解なビジネスロジックをクリアに表現できるPHPのデシジョンテーブル実装に、ぜひチャレンジしてみましょう!

3
採択
2025/07/19 13:20〜
ルームD
レギュラートーク(20分)

MySQL9でベクトルカラム登場! PHP×AWSでのAI/類似検索はこう変わる

suguru_ohki スー

MySQL9でのベクトルカラム/ベクトル検索サポートは、PHPアプリケーションにおけるAI活用や類似性検索を大きく変える可能性を秘めています。
プロポーザル提出時は、AWSのRDSで取り扱い可能なバージョンは、8系が最新ですが、特にAWS (RDS/Aurora) 環境での利用が現実味を帯びる中、そのインパクトは計り知れません。
本セッションは、ミドルレベルのPHPエンジニアを対象に、この「ベクトルカラム」導入に焦点を絞ります。ベクトルデータの基本的な概念から、MySQL9で予想されるベクトル型・専用インデックス・検索関数の概要、そしてPHPからこれらをどう扱うか、パフォーマンス考慮点、AWS環境特有の設定や制約についてを説明します。推薦システム、画像検索、セマンティック検索といった機能の実装がどう変化するのか?何を学び、どう備えるべきか? 未来のキラー機能開発に向けた勘所をお伝えします。

4
採択
2025/07/19 13:50〜
ルームA
レギュラートーク(20分)

プロトコル実装を楽しもう! PHPで始めるsocketプログラミング

cakephper cakephper市川

PHPのsocket拡張を利用するとsocketプログラミングができ、通信プロトコルもPHPで実装できます。
さらに、RAW socketという機能を使うとOSが管理しているTCP/IPプロトコルもPHPで実装可能です。

今回のセッションでは、

  • PHPのsocketプログラミングの基本
  • HTTPの実装
  • TCP/IPの実装
    の話を通して、はまりポイントやプロトコル実装の楽しさを共有したいと思います。

プロトコルは仕様が決まっていて、その仕様を見てひたすら実装し、最終的にはサーバやクライアントと通信できるようになります。この通信できた時の喜びは非常に大きく、かつ大変勉強になります。通信できるまでの過程も含めて楽しさが伝えられたらと思います。

6
採択
2025/07/19 13:50〜
ルームB
レギュラートーク(20分)
初登壇 しくじり

コードは育つ、僕も育つ。 PHPと歩んだ設計物語

ysssssss98 Capi(かぴ)

PHPを社会人になって初めて触りました。またLaravelというフレームワークを知りました。そして新卒だった自分はアプリの初期開発でフレームワークの自由さに魅了され、振り回され、恥の多いコードを書きました。その後、過去の自分が未来の自分を苦しめ、改善を決意し、小さく小さくコツコツと改善を進めました。

本セッションでは自分がどんな恥の多いコードを書いてきたのか、どうやってコード的な側面、非コード的な側面からシステムを改善していけるかを実体験をもとにご紹介していきます。
セッションを聞いた方が「自分と似た経験をしないための知識」、「しくじりを自分の成長に変えていける引き出し」を得られたら幸いです。

話すこと(変更の可能性あり)
・ 設計を知らないで実装をするとこんなことしちゃう
・ 自分が行った小さな改善作業(技術側面、非技術側面)

3
採択
2025/07/19 13:50〜
ルームD
レギュラートーク(20分)
初心者向け

副作用と戦う PHP リファクタリング ─ ドメインイベントでビジネスロジックを解きほぐす

kajitack 梶川 琢馬

副作用が絡み合うロジックを触るたび「どこで何が起きるか分からない」――そんな不安をドメインイベントで断ち切ります!

ドメインイベントは「〇〇が起きた」という事実をクラス化し、処理の流れを“出来事”をベースに組み立て直すことで、依存を一方向に整えることができます。

本トークでは実務でのリファクタリングを題材に、

  1. 従来のメソッド分割との違いや限界を体感
  2. 同期イベント導入
  3. 非同期化

の3ステップでリファクタリング前と後のコードで比較しながら順に解説します。

チームでドメインイベントをわいわい議論できるようになるきっかけを提供します!

2
採択
2025/07/19 15:15〜
ルームA
レギュラートーク(20分)
関西勢(在住or出身)

PHPStanへのコントリビュートを通して更にPHPStanに詳しくなった話

malsuke096 まるすけ

PHPStanがどのように解析を行っているのか、型を決定しているのかを普段意識することはほとんど無いと思います。
しかし、仕組みを理解することで活用の幅がもっと広がり、そしてかっこよくなれます!

そこで本トークでは、PHPStanへのコントリビュートを通して、更にPHPStanに詳しくなった経験についてお話します。

話す内容

  • PHPStanが型を決定する仕組み
  • 拡張について
  • 実際に提案した内容・追加した内容について
  • コントリビュートポイントの探し方
  • PR作成からマージまでの流れについて
3
採択
2025/07/19 15:15〜
ルームB
レギュラートーク(20分)
関西勢(在住or出身) 初心者向け 初登壇

PHP 8の文法進化と型の力で学ぶ、“意図が伝わる”コード設計入門

kake4723 かけ

「とりあえず動くPHP」から一歩進みたい初学者へ向けて、PHP 8の文法と型の表現力を通じて、読みやすく・壊れにくいコードの設計を学ぶセッションです。

match 式や readonly プロパティ、union types、named arguments などの機能が、静的解析ツール(PHPStan, Psalm)と組み合わせてどのように活きるのかを具体的なコード例で解説します。

「型を書くだけで、こんなにミスに気づけるのか」「PHPでも設計って考えられるんだ」と実感できる内容を目指します。

文法の表面的な知識だけでなく、現場でコードを書く上で意識したい“意図を型で伝える”視点を手に入れましょう。

4
採択
2025/07/19 15:15〜
ルームD
レギュラートーク(20分)
関西勢(在住or出身)

Laravelで作るWebアプリを普通に真面目にちゃんとAWSにデプロイする方法 〜Franken PHPも試してみるよ〜

hizumiyazaki ひずみ

平均80点ぐらい取れるAWS構成とその使い所と細かいハマりポイントを紹介します

セキュリテイの巻

  • rate limitのハマりポイント、WAFとLaravel
  • .envに書く内容はパラメーターストアにいれておこう
  • ECSはプライベートサブネット(イメージPullできない問題)

コストの巻

  • 画像類はなるべくS3に置く(公開したくないやつをlaravelでどうやって表示する?)
  • t4gインスタンスいいぞ!(昔はPHPとARMの相性悪かったらしいが)
  • ほんとにNginxいる?(Franken PHPでコンテナ一個で運用するのはどうだろう、Nextjsと比較)

動作確認の巻

  • ローカルスタックのS3は割と使い勝手が良い
  • でも、メールはsmtpでmailtrapとか建てたほうが楽かも
  • というかその辺Laravelで良い感じにできる
1