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

○○Wayから外れるやんちゃ。そしてMy Wayへ

chatii ちゃちい

何かを作ることって楽しいですよね。プログラミングを始めたキッカケは、それぞれ違うでしょうけれど、「動くもの」ができたときに得る快感は、およそ共感できるでしょう。
ところで、日々のお仕事に忙殺されて、その得られる快感が薄くなっていませんか?業務ではさまざまな制約があることでしょう。

そんなあなたに、自由な開発をする後押しをしたい。そして自由を糧にしてあなたのWayを作って欲しいのです。

想定ターゲット

  • お仕事でしか開発をしない人
  • 日々のお仕事に忙殺されてる人
  • 個人開発ってなんだろう、どうすればいいんだろう、という人

話さないこと

技術的な詳細には触れませんが、トーク後に質問をいただければ大歓迎です!嬉!

1
採択
2025/03/22 13:00〜
Track A
レギュラートーク(20分)

時間を気にせず普通にカンニングもしつつ PHP で ISUCON14 の問題を解いてみる

sji_ch sji

ISUCON は「いい感じにスピードアップコンテスト」の略で、ほぼ同様の処理をするよう作られた Web サービスの参考実装が複数の言語で用意され、参加者は競技中好きな言語を選んでその性能改善をしていきます。2024 年に実施された ISUCON14 でも PHP 用の参考実装が用意され、実際に PHP を使って参加し、良い成績をおさめたチームもありました。

このトークでは ISUCON14 の問題の PHP 参考実装を使い、時間制限を気にせず、参加者の感想ブログの取り組みを平然とパクりつつ、PHP で優勝チームに勝てるスコアを出せるか試した際の知見をお話します。

かつて PHPerKaigi 2023 で ISUCON12 本選問題を使って同様の試みを行った際は、

  • 計測の重要性
  • DB ネックの間は他言語と同じような改善が効く
  • 処理系へボトルネックが移ると同じやり方は使えない
  • AltFPM の有効性
  • CPU をより多く割り当てる必要性
  • 徹底的にやれば PHP でもスコアは出る

といった知見が得られました。
今回もそれらの知見にもとづき同様の改善の道筋をなぞりつつ、FrankenPHP や PHP 製アプリケーションサーバに PHP 8.4 など、前回は存在しなかった・試せなかった取り組みを上乗せで行っていきます。

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

MockeryでPHPテストをもっとシンプルに!効果的なモックの使い方

kajitack 梶川 琢馬

みなさん、PHPのテストを書くときに「他のクラスや依存関係のせいでテストが難しいな…」と思ったことはありませんか?
そんなときに役立つのが、PHPのモックフレームワーク Mockery です!

Mockeryを使えば、依存するクラスやインターフェースの動作をモックして、テストをもっとシンプルに、効率的に進められます。このトークでは、Mockeryの基本的な使い方から実際の業務で役立つテストケースまで、具体例を交えて解説します。

取り上げる予定の内容はこちら!

  • モックを使ったメソッド呼び出しの検証方法
  • 高度な引数の比較を使った柔軟なテスト
  • 実務でのテストケースの実例紹介

Mockeryを使えば、テストのストレスが軽減され、もっとスマートにテストが書けるようになります!ぜひ参加して、PHPのテストを楽にする方法を学んでください!

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

さぁ、アジャイルをはじめよう~はじめの一歩の踏み出し方~

shogogg 河瀨 翔吾

「アジャイルなんてオシャレな自社開発企業だけの特権でしょ?」

そう思っていた時期が自分にもありました。

その後、自組織へのアジャイル導入を主導し、実践を重ねた今となっては、アジャイルはチーム単位や、ひとりからでも始められる!と確信しています。

このセッションでは、アジャイルの魅力、そして「はじめの一歩の踏み出し方」についてお話しします。

こんな人に聞いて欲しい

  • アジャイルのことは知っているけど、まだ実践できていない人
  • 受託開発だからアジャイルは無理、とあきらめてしまっている人

お話しないこと

スクラムや XP などについての細かいお話はしません。

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

言語設定ってどう決まるの?どう決めるの?初めて真剣に考えたエンジニアの設計探索

suguru_ohki スー

「言語設定」という言葉は普段の開発でよく耳にするものの、これまで深く考えたことがありませんでした。日本語や英語などの言語設定がどのように決められ、どのように利用されているのかを理解することで、国際化対応やユーザー体験の向上にどのように活かせるのか。本セッションでは、自身が初めて真剣に言語設定の仕組みと設計に向き合った経験をもとに、言語設定の基本から設計に至るまでの学びを共有します。

まず、OS(Linux、Windows、macOS)やブラウザがどのように言語設定を決定し、利用しているのかを解説します。その後、これらの情報がPHPアプリケーションに渡されたときにどのように利用されるのか解説します。

さらに、実際のアプリケーション設計において、どのように言語の対応を処理すべきかを検討します。具体的には、Accept-Languageヘッダーを基に動的に言語を切り替えるミドルウェアの設計や、クッキーやセッションを利用したユーザー固有の言語設定の永続化方法についても触れます。また、多言語対応におけるドメインの利用(例: example.jpとexample.com)やURLパス(例: /enや/ja)を使った切り替えの実装パターンについても議論します。

このセッションは、言語設定について初めて真剣に考えるエンジニアに向けた内容です。言語設定の仕組みを理解し、設計に落とし込むまでのプロセスを一緒に探ることで、これからの国際化対応に必要な知識と視点を得られるはずです。一緒に、言語の設計に一歩踏み込み、真剣に考えて見ませんか?

採択
2025/03/23 16:40〜
Track A
LT(5分)

ISUCONにPHPで挑み続けてできるようになっ(てき)たこと

blue_goheimochi 大橋 佑太

ISUCONにPHPで挑み続けて8回(ISUCON7〜ISUCON14)。
ふと、こんな疑問が頭をよぎることがあります。

「自分(私たち)は本当に成長しているのだろうか?」

8回も挑戦を重ねてなお、悔しさや「まだまだできないことが多いなぁ」という気持ちに直面します。
それでも、振り返ってみると、できることや考えられることが確実に増えていると実感しています。

「できない」と「できる」には壁があります。

しかし、その差は小さいことも多く、ふとしたきっかけで「できる」になるなと感じています。
この過程こそが成長であり、試行錯誤を通じて得られる価値ではないかなと思います。

ISUCONに挑む中で得た学びと、「続けることで見えてくる成長」について共有します。
技術的なノウハウだけでなく、挑戦することの意義や、それを続ける中で見つけたヒントをお伝えしたいと思います!

2
LT(5分)

5分で入門!SvelteKit!

hibiki_cube ヒビキ

Svelteって名前、聞いたことありますか?
SvelteはReactやVue、Angularなどと同じ、リアクティビティをもったWebアプリケーションライブラリです。
Reactに対してNext.jsがあるように、SvelteにもフレームワークとしてSvelteKitがあります。

このLTではPHPerの皆さんにだからこそ伝えたい、
SvelteKitの魅力やおすすめポイントを5分でギュギュっとお伝えします!

このLTがおすすめの人

  • SvelteやSvelteKitに興味がある人
  • よりよいUIフレームワークを探し求めている人
  • 状態管理でつらい思いをしたことがある人

このLTで得られること

  • SvelteやSvelteKitの概要
  • SvelteKitの基本
  • 「早速触ってみたいぞ!」という気持ち
5
レギュラートーク(20分)

3ヶ月にわたる多言語対応での仕様と技術のキャッチアップ

matsu_tarou 高森松太郎

現在担当しているプロダクト(建設DX領域のバーティカルSaaS)で多言語対応プロジェクトに参画した際の学びを共有したいと思います。

背景

プロダクトは10年以上運用しているものでリポジトリのファイル数は3千を超えます。
図面を見たり写真を撮ったりという標準的な機能のほか、外部機器と連携して検査をするというオプショナルな機能をあわせると30以上機能があります。
標準的な機能は多言語対応が完了していましたが、オプショナルな機能をこれから多言語対応していくというタイミングでした。

本トークで話すこと

  • サービスを多言語対応をするうえでそもそも起こりうる、日本語と英語で文字数や記号による違いなど、表現について。
  • 長く運用しているプロダクトの複雑な仕様を理解しながら進める多言語対応。
  • 考慮不足によって発生したバグからの学び。

発表者について

プログラミング歴約2年半で転職して入社した会社での話し。
入社から数カ月後に参画したプロジェクトが多言語対応でした。

対象者

これから多言語対応をする予定の方、今多言語対応している方。
多言語対応で起きる問題に興味がある方。

採択
2025/03/23 15:30〜
Track A
LT(5分)

PHPのガベージコレクションを深掘りしよう

stupid_owl Rinchoku

我々はメモリの確保・解放をほとんど気にすることなく、プログラムを書くことができます。
PHPを触れていると、このGarbage Collectionを意識することもないと思います。

Garbage Collectionは、プログラムがメモリを効率的に利用できるようにする重要な仕組みです。
本セッションでは、PHPにおけるGarbage Collectionの動作やgc_XXX関数について簡単に解説します。

皆さんと共に、Garbage Collectionの恩恵を再認識し、より効率的なプログラミングを目指す旅に出かけましょう。

3
LT(5分)

なんだかんだ言わずドキュメント化しようぜ

YKanoh65 加納悠史

メンドウ?タイクツ?書き方がわからない??

決めたことを文書にまとめない理由はたくさんあるかと思います。
一時的には文書を書かない方が、仕事のスピードは早いかもしれませんが、長期的に見たときにはどうでしょうか?

この発表では一時の時間短縮のためにドキュメント化を怠った結果、どのような末路が待っているかを具体例を交えて紹介します。

1
採択
2025/03/23 13:00〜
Track B
レギュラートーク(20分)

パスキーでのログインを実装してみよう!

hibiki_cube ヒビキ

皆さんはパスキーと聞いて何を思い浮かべますか?
なんか新しいすごいやつ、パスワードがいらないやつ、顔認証するやつ、デバイス間で同期してくれる、公開鍵暗号、チャレンジ………

このトークでは、近年GoogleやGitHubなど主要なWebサービスでも採用されてきている新しいユーザー認証方法「パスキー」に入門します。

  • パスキーとは何か
  • パスキーで何ができるのか
  • なぜパスキーが推されているのか
  • 従来のユーザー認証と何が違うのか

などのような基本的な部分から、

  • パスキーでログインをするために必要な実装
  • パスキーを実装する上での注意点
  • パスキーを運用する上での注意点

など発展的な部分まで、一通りパスキーでの認証ができるようになるレベルを網羅します。

このトークがお勧めな人

  • パスキーに興味がある人
  • ID / パスワードによる認証とさよならしたい人
  • よりセキュアなユーザー認証を実現したい人

このトークで得られること

  • パスキーの仕組みの理解
  • パスキーの実装方法
  • パスキーの運用のあれこれ
10
ポスターセッション

Open API Initiativeが提案する新たなAPIワークフロー定義「Arazzo Specification」

__tortoise hkws

WebAPIを介して他のサービスと連携して、新しいサービスを作ることってありますよね。Googleアカウントでログインする機能の実装はまさにその一例です。
しかし、OpenAPI Specification等のフォーマットで各APIの仕様が公開されていたとしても、それらをどう組み合わせれば目的のユースケースを実現できるかは自明ではありません。ドキュメントを読み込み試行錯誤する中で、API間の依存関係やシーケンスを解き明かした経験がある方も多いのではないでしょうか。
この問題を解決するために、OpenAPI Initiativeでは「Arazzo Specification」という新しいAPIワークフロー定義が検討されています。2024年5月には、この仕様のv1.0.0が公開されました。本ポスターでは、そんな「Arazzo Specification」の詳細について解説します。

【予定している内容】

  • Arazzo Specificationの概要
  • 想定されるユースケース
  • Arazzo Specificationの詳細内容
  • Arazzoを用いたAPIワークフローの記述例
1
LT(5分)

独断と偏見で選ぶ!PHPStanエラー大全とその解決法

myblackcat7112 まさき。

PHPStanはPHP開発者にとって頼れる相棒ですが、そのエラーは時に悩ましいもの。このセッションでは、私が独断と偏見で選んだ実例をもとに、PHPStanのエラーがどのような場面で発生するのか、具体的な修正方法をお伝えします。「PHPStan初心者」から「ちょっと苦手」な人まで、役立つ情報をギュッと詰め込みました。今日からPHPStanをあなたの最高の同僚にしましょう!

LT(5分)

循環参照って本当にあるんですね、私はもう2度と会いたくないので傾向と対策を考えます!

myblackcat7112 まさき。

循環参照、聞いたことはあるけれど実際に遭遇したことがある方はどれくらいいるでしょうか?私もまさか遭遇するとは思っていませんでしたが、ついにその“おとぎ話”のような存在に出会ってしまいました。そして、それを解決するために地獄のような改修作業が始まりました…。
このセッションでは、循環参照が引き起こす問題やその発見方法、解決するために取った具体的なアプローチを共有します。さらに、再び循環参照に遭遇しないための防止策についてもお話しします。二度と同じ目に遭わないために、一緒に循環参照の対処法を学びましょう!

LT(5分)

エンジニアの成長は「誰かに教えること」から始まる!のかもしれない。誰かに教えることのすゝめ

myblackcat7112 まさき。

副業でPHP(Laravel)を教える中で、技術力だけでなく、自分のエンジニアとしての姿勢やスキルにも大きな変化がありました。

「このエンジニアに教わりたい」と思ってもらえる存在を目指し、GitHubの自己紹介やブログに力を入れたり、プライベートでコードを書く時間が増えたりと、活動の幅が広がりました。
また、人に教えるには深い理解が必要なため、「分からないことを徹底的に調べる」「ドキュメントやコードを読む」「一次情報にあたる」などをこれまで以上に重視するようになりました。
教える中では、短時間での原因切り分けやペアプロのナビゲーションを行う場面もあり、そこで得た経験と気づきは、自分の成長に大きく寄与していると思います。実際業務でデバッグするときにも、まず現状を把握する、どこまでできているかを探る、1次情報に当たるなどがより一層実践でき、課題を解決するまでの時間を短くできているのではと思います。

このセッションでは、副業での教える経験を通じて得た学びがどのように業務に活かされているかを具体的にお話しし、参加者の皆さんが自分自身の成長に役立てられるヒントを提供します。

採択
2025/03/22 17:50〜
Track A
ルーキーズLT(5分)

「PHPシンタックスコレクション〜ペチコレ〜」厨二病が好きそうな小難しいシンタックス編

hknt

覚えていますか?プログラムを読めるようになってきたある時、突然出会った彼らのことを。
先輩エンジニアの書いた三項演算子やnull合体演算子、高階関数にクロージャ。
理解不能。何を表し何の為に何をしているのか。
同時に思ったはず、「なんかカッコいい‥」と。

そして、いつかは自分もこんなプログラムを書いてみたいと言う憧れに近い感情を感じたはず。
エンジニアなら誰しもが通った、なんか小難しいけどカッコいいシンタックスへの憧れを
「PHPシンタックスコレクション〜ペチコレ〜」厨二病が好きそうな小難しいシンタックス編
と称して紹介していきます。
独断と偏見で選んだ「なんかカッコいいシンタックス」達が華やかにランウェイを彩ります。

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

PHP完全攻略本

kitkattsun0531 勝佐拓也

皆さんはゲーム大好きですか?
わたしもネットがあまり普及されてない頃、攻略本を片手にずっとゲームをやってました。

実はPHPにも攻略本があります。ナ、ナンダッテー!?
全て印刷したら六法全書になるであろうボリューム。その名はPHPマニュアル!
本当にコントリビューターの方々には頭が上がりません。いつもありがとうございます。

もちろん、、、PHPerと名乗るからにはPHPマニュアルマラソンをやったことありますよね?
え?やってない?
それなら、一緒に習慣化するしかない!

この発表を経て、PHPの素晴らしさを再認識しましょう!

9
LT(5分)

Laravel Bladeディレクティブ徹底解剖

masakichi_eng まさきち

Laravelでの開発経験者ならおなじみのBladeテンプレート。
あなたは本当に使いこなせていますか?

このセッションは、まず日常的に使う基本的なディレクティブ @if や @foreach といったディレクティブをおさらいし、意外と知られていない隠れたディレクティブのご紹介や、 @csrf などのディレクティブの裏側で行われている処理内容、さらには独自のニーズに応えるカスタムディレクティブの作成方法まで幅広くご紹介します。

「実はこんな使い方ができたのか!」と思わず驚くトピックを盛り込みつつ、テンプレートコードをシンプルかつ可読性を高めるコツをお伝えします。

このセッションを通じてBladeディレクティブを使いこなし、テンプレートを効率的に管理するスキルを身につけ、日々のLaravel開発を一層効率化しましょう!

2
採択
2025/03/22 11:30〜
Track C
レギュラートーク(20分)

実演!CSVダウンロードパフォーマンス改善

takaaki_w しみたか

本セッションでは、CSVファイルのダウンロード速度が遅すぎて切り戻しになった知見をもとに、Laravelアプリケーションのパフォーマンス改善のデモンストレーションを行います。
「頑張って作ったのに遅すぎて使ってもらえない」では悲しすぎるので、ご参考にしていただけますと幸いです。

以下のテーマに沿ってデモをしていく予定です。
・ しくじり談
・ DBからのデータ取得時に気をつけること
・ 取得したデータを加工するときに気をつけること
・ 加工したデータを出力するときに気をつけること

キーワード
・ Eloquentとクエリビルダ
・ N+1問題
・ メモリ
・ ジェネレータ

想定視聴者
パフォーマンスを意識したコードを書ける・レビューができるようになりたい方

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

テストコードで変革する、コード設計とアプリケーションメンテナンスの進化

zosokh ヒエイカザト

テストコード実装によるアプリケーションの実装設計や中長期の運用メンテナンス性に変化が出た話をします。
当初、ファットコントローラーや行数の多いメソッド、ライブラリへの依存性高い設計などが原因で、メンテナンスしにくいPHPアプリケーションを運用していたチームがテストコードの実装から技術負債を徐々に解消していけるようになりました。
理由は「テストコードを入れやすい実装と設計」をするようになったこと。
挙げた課題へどのような実装・設計の変化が起きたかリファクタリングの具体例や、テストコード導入によるコード設計の変化を紹介します。
またテストコードによるリプレイスを叶えたアプリケーションを立ち上げた事でPHPやフレームワークバージョンアップへの適用性、テストコード実装スピード向上やコードレビュー時のコミュニケーションの変化についても語ります。

4