採択
2024/12/22 10:00〜
トラック1 - 1F 大展示
Keynote

PHPの今とこれから2024

rui_hi 廣川 類

11月リリースの最新版バージョン8.4を中心にPHPの今とこれからについて紹介します。
8.4ではプロパティのフックやHTML5サポートをはじめとする様々な機能強化が行われます。
より便利になるPHPの今について、サンプルを交えてわかりやすく紹介します。
変化するPHPコミュニティの姿とこれからについても紹介します。

採択
2024/12/22 10:55〜
トラック1 - 1F 大展示
ゲストスピーカー

PHP RMは何をする?コア開発者と兼任するメリット/裏話

SakiTakamachi Saki Takamachi

PHPFのコア開発者、並びにPHP8.4 RMを務めさせていただいています。
1つのバージョンに対して3人いるRMは一体どのようなことをしているのか、コア開発者と兼任することでどのようなメリットがあるのかをご説明します。
また、特に国内からは見えにくい"コミュニケーション"の部分について、裏話をご紹介します。

1
採択
2024/12/22 10:55〜
トラック2 - 2F 小展示
レギュラートーク(50分)

Beyond ORM

77web 菱田裕美

ORM(Object Relational Mapper)使っていますか?
生PDOを使っていた段階からはじめてORMを使ったとき、誰しも感動したと思います。
しかし、しばらく使っていると…アレアレ?困り事が発生してきます。
このトークではPHPの代表的なORMについて概観し、ORMにまつわる困り事の具体例を解説してから、ORMを乗り越えて、ORMに縛られるのでなくORMの使い方をコントロールするための考え方についてお話しする予定です。
ORMとは何を解決してくれるツールで、何は解決してくれないのか。ストレスなく保守しやすいORMとの付き合い方のバランスはどこにあるのか。皆さんが考えてみるきっかけとなることを目指しています。
キーワード: DTO(Data Transfer Object), 詰め替え, クリーンアーキテクチャ, ORM as 高級なクエリビルダー

9
採択
2024/12/22 10:55〜
トラック3 - 4F コンベンションホール 梅
レギュラートーク(25分)

PHPStan拡張のコードから読み解く静的解析の威力と可能性

tzm_freedom 田実 誠

静的解析は堅牢なPHPアプリケーションを作るための手段として広く認知、活用されるようになりました。
特にPHPStanは技術カンファレンスでも多く言及されており、PHPにおける静的解析のデファクトスタンダードとも言えるツールです。

PHPStanはそれ単体だけでも効果を発揮しますが、拡張機能を使うことでより精緻な解析ができます。
例えばLaravel向けの拡張であるLarastanを使うと、マイグレーションファイルのスキーマ情報により、EloquentモデルのDBカラムの型を解釈できるようになります。

本トークではPHPStanの拡張機能の読み方を紹介するとともに、実際の拡張機能がどのように実装・実現されているのかを見ていきます。
拡張機能のコードを読むことで静的解析の威力を知っていただき、より効果的に静的解析を活用していくきっかけとなれば幸いです。

6
採択
2024/12/22 10:55〜
トラック4 - 4F コンベンションホール 鶯
レギュラートーク(25分)

PHP開発者が挑むDKIM導入:Googleガイドライン対応の実例と学び

上村和輝

Googleから2023年10月に発表され、2024年2月から適用された「メール送信者のガイドライン」。
メール送信機能を有するサービスは何らかの対応に追われたのではないでしょうか。

私が担当するサービスでも、他の開発スケジュールが立てられていた中でガイドラインへの対応を迫られました。
顧客数が多く、それぞれが異なる用途でメールを送信するサービスにおいて向き合った
 ・事業サイドにガイドラインを説明してもうまく伝わらない
 ・OpenDKIMとPHPによる2段階でのDKIMリリース
など、苦労と工夫をお話しします

10
採択
2024/12/22 10:55〜
トラック5 - 1F 会議室AB
レギュラートーク(25分)

良いテストコードを書くためのガイドライン〜作成から運用まで〜

riku929hr rikuto

テストコードはプロダクトの持続可能な成長には不可欠で、私の所属する開発チームでは書くことが必須となっています。
しかし、書き方が人によって異なり、テストケースに過不足があったり、実装の仕方やレビューで悩んだりすることがありました。
そこで、テストコードの書き方をガイドラインを策定しました。現在では開発チーム全体で運用され、一定の効果を発揮しています。

本トークでは、このガイドラインの内容をもとに、テストコードを書くうえで最低限気をつけたいことについてお話します。
また、チーム全体で運用するための、策定のポイントについてもお話しする予定です。

テストコードの書き方を知りたい人はもちろん、テストコードレビューで悩んでいる人、チームで統一したコーディングルールを運用したい人にとって有益なものとなれば嬉しいです!

7
採択
2024/12/22 10:55〜
トラック6 - 3F 特別会議室
レギュラートーク(50分)

「PHP初心者セッション2024」 〜ChatGPTでゼロから動くプログラムを生み出そう!〜

kashioka 有限会社アリウープ 柏岡秀男

初心者向けのセッションです。

対象:
• PHPをこれから始めたい方
• 学習中に壁にぶつかってしまった方
• ChatGPTの活用を知りたい方

ゴール:
ゼロから始める方にもわかりやすく、PHPがはじめられるようになります。

内容:
近年、AI技術の進化により、言語習得のハードルがぐっと下がりました。
このセッションでは、ChatGPTを使ってPHPを学ぶ効果的な方法を紹介します。

•   ChatGPTを活用した効率的な学習方法
•   PHPの基本的な概念と書き方の解説
•   簡単な開発環境のセットアップ方法
•   ChatGPTを使ったコーディングのヒントとテクニック
•   実際に動くシンプルなプログラムの作成

ChatGPTを活用して、よりスムーズに、そして楽しくPHPの世界に飛び込んでみましょう。

1
採択
2024/12/22 10:55〜
ワークショップトラック - C会議室 or D会議室
ワークショップセッション(100分)

PHPエンジニアのためのアクターモデル完全ガイド

ex_takezawa ytake

このワークショップセッションでは、参加者がPHP製 アクターモデルツールキット Phluxorを利用して
アクターモデルを用いた実装を体験します。
PHPでの限定的な考え方や実装に閉じず、
他言語で広く使われているAkka/PekkoやProto Actorなどにも流用できるように
共通の概念を用います

  • ハンズオンセッション アクターモデルを実装するためのPHPツールキット(Phluxor)
    簡単な概念の解説
    基本的なアクターシステムをPHPで構築し実際のコード例を通じてとアクターモデルによる並行処理等の理解を深めます
  • 実際の業務シナリオに基づいた高度な事例紹介
    ドメイン駆動設計などに活かす方法やいくつかの導入事例などについて簡単に紹介します
  • ディスカッション
    アクターモデルの利点と課題やQ&Aセッション

PHPを通して他アクターシステムを理解する手助けにもなるでしょう!

7
採択
2024/12/22 11:25〜
トラック3 - 4F コンベンションホール 梅
レギュラートーク(25分)

入門 文字列

tadsan うさみけんた

文字列(string)はPHPのみならず多くのプログラミング言語で提供されている基本的な機能のひとつであり、誰でもあたりまえに使っているものです。しかしその実態は多様で、一筋ではいかない概念であります。

本トークでは文字列という概念の概観を掴み、一筋ではいかないということを納得して向き合えるようになることを目指します。

  • PHPの文字列の性質
  • 文字コードとは何か
  • UnicodeとUTF-8
  • プログラミング言語は文字をどう扱うか
  • レガシー文字コードに立ち向かう

ただし、以下の内容については詳しく取り扱いません。

  • mbstringモジュール内部構造の最新動向
9
採択
2024/12/22 11:25〜
トラック4 - 4F コンベンションホール 鶯
レギュラートーク(25分)

PSR-15 はあなたのためのものではない?

akai_inu やまゆ

PHP Standards Recommendations 、通称 PSR と呼ばれる、 PHP エコシステムで共通のインターフェースを宣言し、それに準じて実装することで再利用性・可搬性を向上させる施策があります。

その中でも今回は PSR-15 に焦点を当てて、この PSR が 誰のために作られ、どうやって使っていくことが求められているのか をインターフェースから解説していきます。

handle という 1 メソッドだけが宣言されたこのインターフェース、一体どう使えば良いのでしょうか? PSR-7 に批准していない Laravel(Symfony) ユーザーはどうこれをとらえれば良いのでしょうか?

PSR-15 批准フレームワークを 自作 して得た PSR との向き合い方をご紹介します。

2
採択
2024/12/22 11:25〜
トラック5 - 1F 会議室AB
レギュラートーク(25分)

ALBと外部IDプロバイダーで認証しつつ、LaravelではGate・Policyを使わずシンプルにアクセス制御する方法

ryosukes47 佐々木 亮祐

Laravelにおいて認証・認可はGate・Policyの仕組みに沿えばイージーに実装が可能です。
しかし、OktaやMicrosoft Entra IDといった外部IDプロパイダーを使用し、認証自体はWebアプリケーションに到達する前に行いたい場合もあります。

このトークでは、AWS ALBと外部IDプロバイダーを使用しOIDCで認証を行いつつ、LaravelではCasbinという複数言語をサポートしているアクセス制御するための認可ライブラリを使ったRBACの実装例を紹介します。
また、ALBの誤った設定によるALBeastと呼ばれる脆弱性についても触れます。

8
採択
2024/12/22 12:45〜
トラック2 - 2F 小展示
レギュラートーク(50分)

終了の危機にあった15年続くWebサービスを全力で存続させる〜Twilog・Togetter統合の舞台裏〜

togetter_jp 吉田俊明、青山民人|トゥギャッター株式会社

2023年5月、Twitter(現X)が提供するAPIが突如として有料化し、2009年から個人により運営されてきたTwilogがサービスの終了を発表しました。
そこに手を差し伸べる1つの企業がありました。そう、Twitter関連企業のTogetterです。

華麗な買収エピソードの裏側で、Twilogの統合プロジェクトがスタートします。

  • RubyからPHPへのフルスクラッチでのコード移行
  • 15年間貯め続けたテラバイト級のDBの移管作業
  • コストを抑えてAWS環境へ移管するための試行錯誤

などなど、1年間に及んだ移行作業の全容についてお話しします。

Twitter(X) :
yositosi(@yositosi) https://x.com/yositosi
アオヤマ ミント(@MintoAoyama) https://x.com/MintoAoyama

38
採択
2024/12/22 12:45〜
トラック3 - 4F コンベンションホール 梅
レギュラートーク(25分)

PHP ユーザのための OpenTelemetry 入門

shin1x1 新原雅司

このセッションでは、PHP ユーザ向けに OpenTelemetry を導入して、PHP アプリケーションを計装する手法について解説します。OpenTelemetry は、サービスやアプリケーションのテレメトリーデータ(トレース、メトリクス、ログなど)を収集、送信するためのオブザーバビリティフレームワークです。ベンダーニュートラルな OSS であり、PHP 版 SDK も提供されています。これを利用することで、PHP アプリケーションの動作を外部から観測することができます。手軽に利用できるので、オブザーバビリティツールの最初の一歩として触ってみるのも良いでしょう。

本セッションでは、OpenTelemetry SDK の導入、手動計装と自動計装、OTel Collector の活用によるテレメトリデータの送信、ローカル環境と本番環境でのセットアップなどについて紹介します。

2
採択
2024/12/22 12:45〜
トラック4 - 4F コンベンションホール 鶯
レギュラートーク(25分)

Rustで作るPHP拡張モジュール:PSR-7ライブラリ編

takaram71 荒巻拓哉

Rustは高いパフォーマンスとメモリ安全性を両立したプログラミング言語で、最近ではLinuxカーネルの開発に一部取り入れられたことでも話題になるなど、人気の高い言語の一つです。

そのRustで、PHPの拡張モジュールを作ることができるのをご存知ですか?
拡張モジュールは通常C言語で開発されますが、ext-php-rsというライブラリを利用すると、Rustで書いたコードをPHP拡張モジュールとしてコンパイルすることが可能になります。

このセッションでは、PHPerでありRust初心者の私がRustを使ってPSR-7ライブラリを開発した経験をもとに、以下のことをお話しします。

  • Rustはどんなプログラミング言語か、PHPとの比較
  • PSR-7について
  • RustでのPHP拡張モジュールの作り方・デモ
  • Rustを使ってみて感じたこと
12
採択
2024/12/22 12:45〜
トラック5 - 1F 会議室AB
レギュラートーク(25分)

PHPUnitでモックとスタブを使いこなす

asumikam asumikam

ユニットテストにおいて、テストダブルをうまく使うことは必要不可欠です。
しかし、それらの違いや使い分けを誤解していることも多々あります。
PHPUnitでも、モックやスタブを適切に使わないことで、意図が伝わりにくい不明瞭なテストコードが生まれてしまいます。

このセッションでは、具体的な例を交えつつ、PHPUnitにおけるテストダブルの適切な使い分けについて話します。
プロダクトコードだけでなく、テストコードにおいても可読性は大事です。
良いテストコードを書くために、良いテストダブルの使い方を知っていきましょう!!

話すこと
・モックとスタブの違い(基本の部分)
・PHPUnitにおけるテストダブルの使い分け
・使い方が間違っているケース(具体例)

12
採択
2024/12/22 12:45〜
トラック6 - 3F 特別会議室
レギュラートーク(25分)

ChatGPT とつくる PHP で OS 実装

m3m0r7 めもり〜☆

PHP で JVM (a.k.a. Java Virtual Machine) を実装したり,RubyVM を実装したりと様々な試みがなされてきました。
PHP といえばウェブ開発に特化したプログラミング言語だと思われがちかもしれませんが,今では他のプログラミング言語と遜色ないほど様々なことができます。
もちろんそれは,PHP で OS を実装することも例外ではありません。OS の実装は途方もない時間がかかるしハードルが高いと感じるかもしれません。でも大丈夫。私たちには ChatGPT がついているじゃない。
本トークでは,ChatGPT とともに PHP で OS を実装する方法を解説します。

6
採択
2024/12/22 12:45〜
ワークショップトラック - C会議室 or D会議室
ワークショップセッション(100分)

作って理解するComposer <クイックコース>

o0h_ きんじょうひでき

心を込めて模倣をすれば、Composerと心は通うのか──

composer require hoge/fuga と打ったら、適切にパッケージが配置され、オートロード可能な状態になった」
を100分間で目指す企画です

ねらい

  • Composerがパッケージを取得し、利用可能にする仕組みを理解する
  • CLIやファイル操作、オートロード等のPHPの基本〜中級(?)的な機能を理解する

対象レベル

  • PHPの基本的な理解は必須
  • Composer内部の知識は不問

形式

  • チュートリアル資料を利用した、ハンズオン形式
    • 簡単な講義・解説を含む

扱うテーマ

  • composer require で新規パッケージをインストールする、一連の流れ
  • ただし、本物には含まれる一部要件は無視します(実用には不向き)
    • 時間・レベル調整のため
7
採択
2024/12/22 13:15〜
トラック3 - 4F コンベンションホール 梅
レギュラートーク(25分)

見えないメモリを観測する: PHP 8.4 `pg_result_memory_size()` とSQL結果のメモリ管理

KentarouTakeda 武田 憲太郎

PHP 8.4で追加された pg_result_memory_size() は、SQL実行結果の中でも memory_get_usage() に計上されない隠れたメモリ使用量を可視化します。特に大量データ処理時のメモリ不足リスクを軽減する重要なツールです。

この関数の実際の動作を見ながら、PHPでデータベースを扱う際の注意点と解決策を検討します。

  1. メモリの種類: PHPが管理するメモリとそうでないメモリ。これらはサーバの動作にどのような影響を与えるのか。
  2. 実例: PHP 8.4で実際に大量データを扱い、リソースのメモリ消費量を観測。
  3. 開発者へのインパクト: ライブラリやインフラストラクチャ層での考慮ポイント。リソース管理の重要性。

対象者:

  • PHP開発者で、メモリ管理やデータベース接続の効率化に関心がある方
  • PHP内部の実装について興味がある方
9
採択
2024/12/22 13:15〜
トラック4 - 4F コンベンションホール 鶯
レギュラートーク(25分)

PHPとAPI Platformで作る本格的なWeb APIアプリケーション 〜入門編〜

ttskch たつきち

API Platform は、Web APIの開発に特化したPHP向けのフレームワークです。
エンティティクラスにアトリビュートを1行追加するだけで一瞬でREST APIとOpenAPIドキュメントを生成できてしまう手軽さを持ちながらも、
本格的なWeb APIの開発に必要な機能を幅広く備えており、PHPでWeb APIを開発する際の有力な選択肢の一つとなっています。

このトークでは、API Platformの導入方法から、State Provider・State Processor・OpenAPIドキュメントのカスタマイズといった重要な基本機能の概要までを、
実際に動作するデモをお見せしながら丁寧にご紹介します。

皆さんにAPI Platformの概要を知っていただき、少しでも興味を持っていただければ幸いです!

7
採択
2024/12/22 13:15〜
トラック5 - 1F 会議室AB
レギュラートーク(25分)

テストコード書いてみませんか?

onopon_engineer おのぽん

新入社員がテストコードを書けない場合、どのように教えますか?
日頃書く人は感覚的に書けますが、書いたことのない人はコツを掴むまで時間がかかってしまうものです。
皆様も経験があるのではないでしょうか?

本セッションでは、そんなテストコードのチュートリアルをpublicリポジトリとして公開・そのリポジトリの利用方法やテストコードを書く上でのテクニックをお話します。
Docker環境さえ整っていれば誰でもLaravelフレームワーク内でPHPUnitのテストを書くための問題集にチャレンジできる内容となっております。
全ての操作用のコマンドやREADMEを用意しているので、Dockerの知識がなくてもテストの実行やテスト用DBの中身を確認できます。

これを機にテストコードを書けるようになりましょう!

対象者:
・テストコードを知りたい方
・育成コストに悩んでいる方

2