武田 憲太郎 パフォーマンスチューニングはあらゆるWebアプリにおける重要な関心事です。クエリ最適化、計算量削減、キャッシュ活用など、その手法は多岐に渡ります。しかし、それらの多くは「特定の箇所」を速くするアプローチに留まります。
一方、Webアプリケーションには例外なく、すべてのリクエストに必ず登場する要素があります。—「接続」 です。
HTTP、TCP、Unixソケット、DB、キャッシュ… 技術は異なっても、接続は必ず発生します。接続の最適化は、特定部位ではなく「全体」を速くする改善点 となり得ます。
本トークでは、
これら、全く別の話題に見える領域を横断し、そこに共通する 接続の基本原理 を解説します。設定例と計測手法を交えながら、点と点を結ぶ「その一瞬」を制する考え方を提示します。
局所最適化を超え、サービス全体のパフォーマンスを左右する「最後の一手」をその手中に。
想定対象者:
Shunki Tamura 「PdMとのコミュニケーションに課題を感じる」「PdMが技術の壁を理解してくれない」と感じているエンジニアの皆さん、それは相互理解の機会不足かもしれません。本LTは、非エンジニアのPdMである私が、PHPコミュニティ(広島/香川スタッフ)での活動を通じて得た知見を共有します。PdMをPHPカンファレンスに送り込むべき明確な理由と、エンジニアの皆さんがPdMを巻き込むことで得られる3つの具体的なメリットをお話しします。プロダクト開発におけるPdMとエンジニアの連携の質を高めるヒントを持ち帰ってください。
こまもか 古典的な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の魅力を紹介していきます。
きんじょうひでき いつでも気軽に、本格的なスパゲッティを手に入れたいと考えていませんか?
次のようなコードを、得る方法を構築しましょう。
あなたがいつものようにPHPで書いたコードを材料として、
まるで「レンジでチン!で食品を温める」ように、スパゲッティコードを手に入れる。
そんな「夢の無限スパゲッティ製造機」があったら、どうでしょうか?
構造も制御も低レベルな表現力しか持たない世界に転生させ、その後に再びPHPの世界に蘇らせることができれば、
PHPで作られたスパゲッティの製造が可能です!
本トークでは、ネイティブなスパゲッティを作成してみなさんにお届けします
「PHPで書かれたコード → opcodeに変換 → 再度PHPに変換」を行い、「通常のコード」 と見比べていきます。
例外処理の実現など、一部のPHPの機能については割愛します
(つまり、どんなコードにも利用できるものではなく、対応する内容には制限があります)
きんじょうひでき 抽象構文木: ASTについて、「名前は聞いたことがあるけど、よく知らない」「ASTを使うことで、何が手に入るのかイメージが掴めていない」なんて人も、多いのではないでしょうか。
「ASTの世界」へ入門してみませんか?
この記事では、「木としてコードを扱うこと」を体感して、読者が「ASTの面白さや可能性にワクワクした!」になることを目指します。
定義や原理の解説よりも、「手を動かしながら、自分で何かを作ってみる」に重きを置いた、ハンズオン形式のアプローチをとります。
扱う内容は、「ASTを活用して、PHPのコードを生成する」です。
PHPでASTを扱うためのライブラリである、nikic/php-parserを利用して、「木を組み上げる」と「コードが出来る!!」を体験しましょう。
終わった時には、関数やクラス定義も、ループや条件分岐も、メソッドの呼び出しも、「全ては木になるんだ!」という気になれるはずです。普段のコードも、少し違った形に見えてくるかもしれません。
具体的な内容:
めもり〜☆ PHP を Web アプリケーションを作るための言語の一つだと思っていませんか。
実はそれ Web アプリケーション以外の用途にも PHP を用いることができるのはご存知でしょうか。
実例として PHP で Java VM (JVM) を実装したり、RubyVM を実装したり,OS を実装されています。
もちろん,PHP を使って "OS を動かす" エミュレータを実装することもできます。
エミュレータという言葉にピンとこない人もいるかもしれません。皆さんも一度は使ったことあるであろう QEMU や、 VirtualBox のような仕組みを PHP で実装する、というイメージを持ってもらうとわかりやすいのではないかと思います。
本セッションでは,OS の代表格の一つである Ubuntu の起動までをマイルストーンとし, PHP を用いたエミュレータの実装方法から OS を動かすのに必要な知識を解説します。
the よしだ とある事情により、Google Cloudの組織を移行することになりました。
このセッションでは、移行の背景や具体的な手順、直面した課題について詳しくお話しします。
また、移行と同時に進めたセキュリティの強化や、これまでIaC化されていなかったリソースの一部をIaC化する取り組みについてもご紹介します。
これらの経験を通じて得た知見を共有し、同様の課題に直面する可能性のある方々のお役に立てればと思います。
the よしだ OAuthやOpenID Connectは、現代のWebアプリケーションで重要な役割を果たしていますが、これらの概念はしばしば誤解されがちです。
本セッションでは、これらの技術の基礎をしっかりと理解し、Laravelでの実装を通じて実践的な知識を得ることを目指します。
・OAuthとは
・OpenID Connectとは
・SAMLとは
・Laravelでの実装例
たけてぃ 「このプロジェクトはPHP 8.3、あっちは8.1、拡張モジュールも違う…」
複数プロジェクトを抱えるPHP開発者にとって、環境管理は悩ましい問題です。
Homebrewでバージョンを切り替えればグローバル環境が汚染され、Dockerを使えばオーバーヘッドでネイティブより動作が遅くなる。
本記事では、第三の選択肢としてパッケージマネージャ「Nix」を紹介します。
Nixは純粋関数型言語で設計されたパッケージマネージャで、「同じ入力からは常に同じ出力」という再現性を保証します。
仮想化を用いずにプロジェクト単位の完全な環境分離を実現し、ネイティブな実行速度を維持したまま、PHPバージョンや拡張モジュールをプロジェクトごとに宣言的に管理できます。
「開発環境構築のIaC(Infrastructure as Code)」を実現するNixで、チーム全員が同一環境で開発できる世界を体験してみませんか。
松尾篤 本トークはPHPカンファレンス名古屋2025で発表した「PHPのバージョンアップ時にも役立ったAST」の最新版です。
関心を持ち続けながら勉強会に参加していると、ふとしたことがきっかけでさまざまな情報がつながり、点から線そして面に変わり、勉強会で学んだ情報が業務に役立つことがあります。
勉強会でプログラムの構造をツリー状に表現したAST(抽象構文木)のハッシュ値が同じであればプログラムの変更前と変更後の間に差分がないと判断できるという発表を聞いたことがきっかけで、実際のプロダクト開発においてPHP 8.1からPHP 8.2にバージョンアップする作業の一部をスムーズに進められることに気づき、結果として大幅にテスト工数を削減できました。
このトークでは、ASTを取得およびそのハッシュ値を比較する方法やハッシュ値の確認時に留意する点を解説しつつ、ソースコードの解析や変換に活用できるASTがPHPのバージョンアップ時にも役立った事例を紹介します。さらに、業務で活用できるASTを使った影響範囲調査の応用例や、PHP 8.4からPHP 8.5にバージョンアップする際にASTが変わらないケースも今回新たに紹介します。
asumikam 「やべっ!テスト落ちた!!一旦Rerun!!!」
──みなさん、これ、やっていませんか?(特大ブーメラン)
通ればラッキー、通らなければ…まああとで考えるか、というアクションに陥りがちです。
このような"たまに落ちる"Flaky Testを放っておくと、じわじわとテスト全体の信頼性を失っていきます。
私自身、何度も同じ轍を踏んできましたが「そもそもそのようなテストを書かないようにする」勘所を掴んできました。
このトークでは、Flaky testになりそうな臭いのするテストの勘所、そして、そもそも生まないためのテストの書き方について話します。
話すこと
asumikam あなたのPHPerKaigiは、今年で何回目ですか?
はじめてのドキドキ、2回目の成長した自分との再会、3回目からの“ただいま”感…。
もしかしたら、毎年皆勤賞で、すっかり“ホーム”になっている人もいるかもしれません。
私自身、PHPerKaigiだけでなく様々なカンファレンスに参加してきましたが、
いつも思うのは「最初にこれ知ってたら、もっと楽しめたのに!」という小さなヒントやコツの存在です。
そこで今回は、私が「最初に知りたかった!」と思った PHPerKaigi の楽しみ方のコツをパンフレットとしてお届けします!
こんなことを書きます!
もちろん、楽しみ方は人それぞれ。
この中からひとつでも「いいな」と感じるものがあれば、あなたのPHPerKaigiに少しだけ取り入れてみてください!!