レギュラートーク(40分)

「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜

KentarouTakeda 武田 憲太郎

パフォーマンスチューニングはあらゆるWebアプリにおける重要な関心事です。クエリ最適化、計算量削減、キャッシュ活用など、その手法は多岐に渡ります。しかし、それらの多くは「特定の箇所」を速くするアプローチに留まります。

一方、Webアプリケーションには例外なく、すべてのリクエストに必ず登場する要素があります。—「接続」 です。

  • ブラウザ → CDN
  • CDN → ロードバランサ
  • ロードバランサ → Webサーバ
  • Webサーバ → アプリケーションプロキシ
  • アプリケーション → データベース / キャッシュ / ストレージ / 外部API

HTTP、TCP、Unixソケット、DB、キャッシュ… 技術は異なっても、接続は必ず発生します。接続の最適化は、特定部位ではなく「全体」を速くする改善点 となり得ます。

本トークでは、

  • エッジ最適化(CDN / Keep-Alive / 圧縮 / TLSハンドシェイク)
  • Webサーバチューニング(コネクション管理、ソケット、プロセス管理)
  • DB接続の最適化(持続接続、接続プール、TLS、パラメータ)

これら、全く別の話題に見える領域を横断し、そこに共通する 接続の基本原理 を解説します。設定例と計測手法を交えながら、点と点を結ぶ「その一瞬」を制する考え方を提示します。

局所最適化を超え、サービス全体のパフォーマンスを左右する「最後の一手」をその手中に。

想定対象者:

  • Webアプリの性能をもう一段階引き上げたい、アプリケーションエンジニア
  • アプリケーションの性能改善に取り組む、インフラエンジニア
  • 「接続」という低レイヤに入門したい、あらゆるエンジニア
10
ルーキーズLT(5分)

非エンジニアPdMがスタッフをやって分かった、エンジニアとPdMの「相互理解」を深めるPHPカンファレンスの効用

tamu67_33 Shunki Tamura

「PdMとのコミュニケーションに課題を感じる」「PdMが技術の壁を理解してくれない」と感じているエンジニアの皆さん、それは相互理解の機会不足かもしれません。本LTは、非エンジニアのPdMである私が、PHPコミュニティ(広島/香川スタッフ)での活動を通じて得た知見を共有します。PdMをPHPカンファレンスに送り込むべき明確な理由と、エンジニアの皆さんがPdMを巻き込むことで得られる3つの具体的なメリットをお話しします。プロダクト開発におけるPdMとエンジニアの連携の質を高めるヒントを持ち帰ってください。

1
パンフ記事(2ページ)

Erlang VMは進化したPHPかもしれない

Comamoca_ こまもか

古典的なPHPはCGIで実行されます。CGIはリクエスト毎にメモリを破棄するモデルとなっており、リクエスト間でのメモリ空間は独立しています。しかし、パフォーマンスに難があります。

Erlang VMもまた、リクエスト毎にメモリを破棄するという点では同じアプローチを取ります。Erlang VMではprocessと呼ばれる軽量なグリーンスレッドを用いて並列分散処理を行い、リクエスト毎にprocessを割り当てて実装するのが一般的です。
PHPのCGIとメモリ管理の考え方は共通していますが、Erlang VMは軽量なprocessにより高いパフォーマンスを実現しています。

Erlang VMは優れた処理系ですが、メジャーな言語であるErlangやElixirは動的型付け言語です。一方、最近v1に到達したGleamは、静的型付けかつシンプルな構文で、ErlangとJavaScriptにコンパイルできます。

本記事ではGleamを用いてWebアプリケーションを実装し、PHPとErlang VMの類似点と相違点を実際に検証します。堅牢なメモリ管理や高度な並列処理など、Erlang VMの魅力を紹介していきます。

4
レギュラートーク(20分)

夢の無限スパゲッティ製造機

o0h_ きんじょうひでき

いつでも気軽に、本格的なスパゲッティを手に入れたいと考えていませんか?
次のようなコードを、得る方法を構築しましょう。

  • 関数やメソッドを用いたコードの構造化を行わない
  • フロー制御はgoto演算子によって行われる
    • gotoでのジャンプを行う場合のみif文を用いる

あなたがいつものようにPHPで書いたコードを材料として、
まるで「レンジでチン!で食品を温める」ように、スパゲッティコードを手に入れる。
そんな「夢の無限スパゲッティ製造機」があったら、どうでしょうか?

構造も制御も低レベルな表現力しか持たない世界に転生させ、その後に再びPHPの世界に蘇らせることができれば、
PHPで作られたスパゲッティの製造が可能です!
本トークでは、ネイティブなスパゲッティを作成してみなさんにお届けします

話すこと

「PHPで書かれたコード → opcodeに変換 → 再度PHPに変換」を行い、「通常のコード」 と見比べていきます。

  1. スパゲッティコードの定義と、目指す世界の共有
    • 「スパゲッティ」の要件
    • 「夢の無限スパゲッティ製造機」とは何か
  2. opcodeの基礎的な知識と読み方
    • 文法や語彙
  3. 夢の無限スパゲッティ製造機の解説とデモ
    • 入力/出力の結果の共有
    • 実装の解説
  4. PHPで「真のスパゲッティを目指す」ことの困難性
    • "キレイなgoto" と "ワイルドなgoto"、など

話さないこと

例外処理の実現など、一部のPHPの機能については割愛します
(つまり、どんなコードにも利用できるものではなく、対応する内容には制限があります)

2
パンフ記事(8ページ)

遊んで仲良くなるAST: php-parserを使ってコードを生成してみよう

o0h_ きんじょうひでき

抽象構文木: ASTについて、「名前は聞いたことがあるけど、よく知らない」「ASTを使うことで、何が手に入るのかイメージが掴めていない」なんて人も、多いのではないでしょうか。

「ASTの世界」へ入門してみませんか?
この記事では、「木としてコードを扱うこと」を体感して、読者が「ASTの面白さや可能性にワクワクした!」になることを目指します。
定義や原理の解説よりも、「手を動かしながら、自分で何かを作ってみる」に重きを置いた、ハンズオン形式のアプローチをとります。


扱う内容は、「ASTを活用して、PHPのコードを生成する」です。
PHPでASTを扱うためのライブラリである、nikic/php-parserを利用して、「木を組み上げる」と「コードが出来る!!」を体験しましょう。
終わった時には、関数やクラス定義も、ループや条件分岐も、メソッドの呼び出しも、「全ては木になるんだ!」という気になれるはずです。普段のコードも、少し違った形に見えてくるかもしれません。

具体的な内容:

  1. ごくごく簡単な「ASTとは何か」の説明
  2. nikic/php-parserを動かしてみる・遊んでみる
  3. ASTからコードを生成する
2
レギュラートーク(40分)

PHP でエミュレータを自作して Ubuntu を動かそう

m3m0r7 めもり〜☆

PHP を Web アプリケーションを作るための言語の一つだと思っていませんか。
実はそれ Web アプリケーション以外の用途にも PHP を用いることができるのはご存知でしょうか。

実例として PHP で Java VM (JVM) を実装したり、RubyVM を実装したり,OS を実装されています。

もちろん,PHP を使って "OS を動かす" エミュレータを実装することもできます。
エミュレータという言葉にピンとこない人もいるかもしれません。皆さんも一度は使ったことあるであろう QEMU や、 VirtualBox のような仕組みを PHP で実装する、というイメージを持ってもらうとわかりやすいのではないかと思います。

本セッションでは,OS の代表格の一つである Ubuntu の起動までをマイルストーンとし, PHP を用いたエミュレータの実装方法から OS を動かすのに必要な知識を解説します。

5
レギュラートーク(20分)

Google Cloud組織の移行とセキュリティ強化の挑戦

theyoshida3 the よしだ

とある事情により、Google Cloudの組織を移行することになりました。
このセッションでは、移行の背景や具体的な手順、直面した課題について詳しくお話しします。
また、移行と同時に進めたセキュリティの強化や、これまでIaC化されていなかったリソースの一部をIaC化する取り組みについてもご紹介します。
これらの経験を通じて得た知見を共有し、同様の課題に直面する可能性のある方々のお役に立てればと思います。

レギュラートーク(20分)

Laravelで学ぶOAuthとOpenID Connectの基礎と実装

theyoshida3 the よしだ

OAuthやOpenID Connectは、現代のWebアプリケーションで重要な役割を果たしていますが、これらの概念はしばしば誤解されがちです。
本セッションでは、これらの技術の基礎をしっかりと理解し、Laravelでの実装を通じて実践的な知識を得ることを目指します。
・OAuthとは
・OpenID Connectとは
・SAMLとは
・Laravelでの実装例

1
パンフ記事(4ページ)

パッケージマネージャNixで実現する宣言的でクリーンなPHP開発環境の構築

takeokunn たけてぃ

本文

「このプロジェクトはPHP 8.3、あっちは8.1、拡張モジュールも違う…」

複数プロジェクトを抱えるPHP開発者にとって、環境管理は悩ましい問題です。
Homebrewでバージョンを切り替えればグローバル環境が汚染され、Dockerを使えばオーバーヘッドでネイティブより動作が遅くなる。

本記事では、第三の選択肢としてパッケージマネージャ「Nix」を紹介します。

Nixは純粋関数型言語で設計されたパッケージマネージャで、「同じ入力からは常に同じ出力」という再現性を保証します。
仮想化を用いずにプロジェクト単位の完全な環境分離を実現し、ネイティブな実行速度を維持したまま、PHPバージョンや拡張モジュールをプロジェクトごとに宣言的に管理できます。

「開発環境構築のIaC(Infrastructure as Code)」を実現するNixで、チーム全員が同一環境で開発できる世界を体験してみませんか。

パンフレット記事に記載すること

  • 命令的管理(Homebrew)と宣言的管理(Nix)のアプローチの違い
  • Nix Flakesを用いた、PHPバージョン・拡張モジュールの具体的な定義手法
  • direnvとの連携による、ディレクトリ移動だけで環境が切り替わるシームレスな開発体験
  • Dockerとの比較と使い分けの指針
  • etc...
2
レギュラートーク(40分)

PHPのバージョンアップ時にも役立ったAST(2026年版)

matsuo_atsushi 松尾篤

本トークはPHPカンファレンス名古屋2025で発表した「PHPのバージョンアップ時にも役立ったAST」の最新版です。

関心を持ち続けながら勉強会に参加していると、ふとしたことがきっかけでさまざまな情報がつながり、点から線そして面に変わり、勉強会で学んだ情報が業務に役立つことがあります。

勉強会でプログラムの構造をツリー状に表現したAST(抽象構文木)のハッシュ値が同じであればプログラムの変更前と変更後の間に差分がないと判断できるという発表を聞いたことがきっかけで、実際のプロダクト開発においてPHP 8.1からPHP 8.2にバージョンアップする作業の一部をスムーズに進められることに気づき、結果として大幅にテスト工数を削減できました。

このトークでは、ASTを取得およびそのハッシュ値を比較する方法やハッシュ値の確認時に留意する点を解説しつつ、ソースコードの解析や変換に活用できるASTがPHPのバージョンアップ時にも役立った事例を紹介します。さらに、業務で活用できるASTを使った影響範囲調査の応用例や、PHP 8.4からPHP 8.5にバージョンアップする際にASTが変わらないケースも今回新たに紹介します。

1
レギュラートーク(20分)

「通るまでRerun」から卒業!落ちないテストを書く勘所

asumikam asumikam

「やべっ!テスト落ちた!!一旦Rerun!!!」
──みなさん、これ、やっていませんか?(特大ブーメラン)

通ればラッキー、通らなければ…まああとで考えるか、というアクションに陥りがちです。
このような"たまに落ちる"Flaky Testを放っておくと、じわじわとテスト全体の信頼性を失っていきます。

私自身、何度も同じ轍を踏んできましたが「そもそもそのようなテストを書かないようにする」勘所を掴んできました。
このトークでは、Flaky testになりそうな臭いのするテストの勘所、そして、そもそも生まないためのテストの書き方について話します。

話すこと

  • PHPで遭遇しがちな Flaky Test の具体例と原因パターン
    • 不定順・日付またぎ・fakerの揺れ・CIとローカルの差異 など
  • Flakyにならないテスト設計の指針
  • Flaky Testを“そもそも生まない”ための開発プロセス・レビュー
5
パンフ記事(4ページ)

PHPerKaigiのあるきかた

asumikam asumikam

あなたのPHPerKaigiは、今年で何回目ですか?
はじめてのドキドキ、2回目の成長した自分との再会、3回目からの“ただいま”感…。
もしかしたら、毎年皆勤賞で、すっかり“ホーム”になっている人もいるかもしれません。

私自身、PHPerKaigiだけでなく様々なカンファレンスに参加してきましたが、
いつも思うのは「最初にこれ知ってたら、もっと楽しめたのに!」という小さなヒントやコツの存在です。

そこで今回は、私が「最初に知りたかった!」と思った PHPerKaigi の楽しみ方のコツをパンフレットとしてお届けします!

こんなことを書きます!

  • ワクワク前準備
  • スポンサーブースの歩き方
  • セッション&フィードバックの楽しみ方
  • 懇親会で広がる交流のヒント
  • 「楽しかった」を広げるブログ術

もちろん、楽しみ方は人それぞれ。
この中からひとつでも「いいな」と感じるものがあれば、あなたのPHPerKaigiに少しだけ取り入れてみてください!!

7