採択
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/18 18:00〜
ルームA
レギュラートーク(45分)
関西勢(在住or出身) 初心者向け

抽象化という思考のツール -理解と実践-

shin1x1 新原雅司

「抽象化していますか?」ーー抽象化と聞くと、設計やモデリングをイメージするかもしれません。他にも、interface のような言語機能を利用することを思い浮かべる方もいるかもしれません。たしかにこれらも抽象化の一つですが、それだけではありません。また、抽象化には難しそうなイメージを持たれがちですが、実はソフトウェア開発を行なっている私たちにとっては日々利用している身近なものです。

本セッションでは、抽象化(と具体化)という考え方を整理し、設計や言語機能だけでなく、物事の理解や共有、課題解決、トラブルシューティングといった開発現場の広い場面でも活用できる「思考の技術」として具体的な例とともに紹介します。

「使える思考のツール」として抽象化を一緒に見ていきましょう。

3
採択
2025/07/19 10:20〜
ルームA
基調講演(50分)

ソフトウェア・デザインに向かおう ~ 世界を(ちょっとだけ)変えるソフトウェアを目指して ~

杉本啓

ソフトウェアを作る仕事は労苦以外の何物でもありません。
労苦は、複雑な世界に向けて使いやすい道具を作るという仕事の本質的な難しさに起因していて、技術や手法を洗練すれば除去できるものではありません。
アジャイルにすれば楽になると思いきや、開発にまつわる周辺的な複雑さが緩和されることによって、役に立つモノを作ること自体に内在する難しさが却って際立ってきます。
我々は、何のために、労苦を甘受してソフトウェアを作るのでしょうか。
労苦を軽減することも大事ですが、労苦の意味を知ることはそれ以上に重要です。
自分たちが作るソフトウェアの存在意義が腑に落ちなければ、私たちはけっして労苦を乗り越えられず、真っ当なソフトウェアを創り得ないでしょう。
この基調講演では、その糸口として、ソフトウェア作りとは何か、どうして私たちはソフトウェアを作るのか、それを踏まえてソフトウェアをデザインするとはどういうことか、といったことがらについて、一緒に考えてみましょう。

我々の仕事には意味があります。

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

どこまで違う?!PHP実行環境パフォーマンス対決 - mod_php vs php-fpm vs Swoole vs FrankenPHP

ma_me ma_me

概要

PHPの実行環境は、アプリケーションのパフォーマンスやスケーラビリティに大きく影響します。
本セッションでは、Laravelで作成したCRUDアプリを用いて、次の環境のパフォーマンスを比較します。

対象の比較環境

  • mod_php + Apache
  • Nginx + php-fpm
  • Swoole
  • FrankenPHP

各実行環境の特徴と、ユースケースごとの適性を実測データに基づいて比較・考察して、結果を共有し、
実行環境を選定するさいの実践的な知見を持ち帰っていただくこと目標にしています。

対象者

  • PHP開発者
  • パフォーマンス最適化に関心のあるアプリケーションエンジニア

話さないこと

  • パフォーマンスチューニングにおける個別パラメーターの詳細説明
  • 実行環境の構築手順・設定方法
4
採択
2025/07/19 11:20〜
ルームB
レギュラートーク(45分)
関西勢(在住or出身) 初心者向け

PHPでお金を扱う時、終わりのない謎の1円調査の旅にでなくて済む方法 ~ドメインコードの具体例を交えて~

konsent_nakka なっかー

話すこと

  • PHPでstring, float, intを相互変換するとどのような問題が起きるのか、どのように実行されているのか
  • センシティブな数値を扱う時、どのように扱うべきなのか
  • UseCase、Domainの各層で具体的にどのように書くのか

説明

会計システムを作る時にPHPの数値仕様をしっかり理解した上で作らないと、後々大変なことになってしまう可能性があります。
小数点以下の誤差によって1円が消えたり増えたりしてしまうことがあり、1円の行方を巡って終わりのない、解決もしない調査の旅に身を投じることになるでしょう。
それが今なのか、いつなのかは分かりませんが、知っていれば防げる問題でもあります。

本セッションでは数値にはどんな問題があり、扱う時に何を気をつける必要があって、さらに扱いやすくするためにおすすめの方法をお話しします。

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

階層化自動テストで開発に機動力を

effy_staffs wakaba
  • 自動テストの改修コストが高くリリース速度が落ちてる
  • xUnitでどこまで書けばよいのか判らない
  • E2Eで回してるけど本当に確認したいのは単純なI/Oだけなんだけど

これらのお悩みを纏めて解決する、よくばりテスト技法として「階層化自動テスト」戦略についてお話します。

本トークは「品質とは何か?」を前提に進みます。
より理解を深めたい方は、PHPカンファレンス関西2024での登壇「『"品質"が高いコード』って何?」をご覧ください。
https://fortee.jp/phpcon-kansai2024/proposal/a60c9e18-bc61-4f60-80d0-0a0ea7a205c4

このトークで得られる知見

  • 品質管理の一環としての統合的なテスト戦略
  • 「テストをどこに書けばよいのか」問題への指針

このトークで扱わない内容

  • ツールの使い方や実装ノウハウ
7
採択
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〜
ルームC
ワークショップ(100分)
初心者向け

PHPStan 型付け体験教室

tadsan うさみけんた

PHPStanは簡単に使い始められる便利なツールですが、レベルを上げようとするとPHPStanの型付けの特性について学ばなければ効果的に型をつけることはできません。本ワークショップではブラウザから動かせるPHPStan Playground上で問題を解くことでPHPStanの型についての理解を進めます。

このワークショップではブラウザ上で動作するPlaygroundとPHPが動作するローカルマシンのどちらでも取り組むことができます。
(ローカル環境でのPHP開発環境について本編時間内ではサポートできません)

PHPの文法について基本的に理解していると望ましいですが、可能な限りサポートします。

5
採択
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 14:20〜
ルームA
レギュラートーク(45分)
関西勢(在住or出身) 初心者向け

「次に何を学べばいいか分からない」あなたへ──若手PHPエンジニアのための学習地図

Panda_Program プログラミングをするパンダ

PHPでの開発に慣れてきた若手エンジニアが次に直面するのは、「何をどう学べばいいのか分からない」という壁です。MVCフレームワーク、リファクタリング、SOLID原則、ペアプロ、ユニットテスト、アジャイル開発といった開発に関する考え方や実践はどこから生まれ、なぜ今も大切にされているのでしょうか?

本セッションでは、ケント・ベック、マーティン・ファウラー、ボブおじさん、DHHといった人物を中心に、それぞれの技術や手法が生まれた背景、当時の課題、そしてそれらがPHPを含む現在の開発スタイルにどう影響を与えてきたのかを、歴史の視点から紹介します。

こうした知識は本来「デキる先輩」が後輩に伝えてきたものでした。しかし、周囲にそのような先輩がいない場合もあると思います。このセッションでは、現場の課題を解決するために必要なことを効率よく学ぶための「知識の地図」を提供します。

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

Git by PHP - 作って学ぶバージョン管理システム

普段当たり前のように使っている “Git”、その仕組みを理解していますか?
本セッションでは、Git の内部構造を理解するために「PHP で Git の再現」に挑戦した取り組みを紹介します。
実際に再現してわかった、Gitのデータ構造や差分管理の仕組み、そして再現を通じて学べた本質的な気付きについてお話しします。

トーク内容(予定)

  • なぜ Git を再現するのか
  • なぜ PHP で再現するのか
  • どうやって Git を再現したのか
  • Git を再現するために必要なもの
  • Git の中身はどうなっているのか
  • 差分はどのように管理されているのか
  • データはどのように保存されているのか

普段なんとなくGitを使っている方も、このセッションを通じて仕組みへの理解を深めてみませんか?

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

構文解析器入門

ydah_ ydah

皆さんは、ご自身が書いたコードがPHPによってどのように解析され、有効な構文として認識されているか気になったことはありませんか?
この発表では、構文解析の理解を深め、文法ファイルを読み解くスキルを身につけることで、
PHPの文法をより深く知るきっかけにしたいと思います。

話す内容は以下のことを予定しています:

  • パーサーとパーサージェネレーターの基礎知識
  • 文法ファイルとbison/yacc形式のBNFの読み方
  • 実際の文法ファイルのBNFを眺めながら実際に読む

この発表の対象者は、PHPの構文解析のしくみに興味を持つすべてのPHPerです。
この分野の知識がない方でも理解できる内容にします。

構文解析器の分野は非常に興味深く、言語設計の奥深さを知る入り口となります。
この発表を通じて、少しでも多くの方がこの分野に興味を持っていただけることを目指します。

5
採択
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