採択
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 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〜
トラック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 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
採択
2024/12/22 13:15〜
トラック6 - 3F 特別会議室
レギュラートーク(25分)

AWSのLambdaでPHPを動かす選択肢

stupid_owl Rinchoku

現在プロダクトのインフラの選択肢は格段に広がっています。
AWSだけでも、EC2、ECS on EC2、AWS Fargate、AWS EKSがあります。
ただし、LambdaはPythonやnode.jsなどをサポートしていますが、PHPをサポートしてないということで選択肢に上がりません。
近年LambdaにWeb Adapterが登場したことで、様々な言語・フレームワークを動かすことができます。

本セッションはLambda Web Adapterで実際に動かした経験談をベースに、Lambda Web Adapterの良さや苦労話を共有できればと思います。

本セッションの対象者
・Lambda Web Adapterを聞いたことがない人
・Lambda Web Adapter or Bref + Laravelで開発話を聞きたい人
・Serverlessに興味がある人

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

技術を楽しむ:PHPで実装するTLS/SSLプロトコル

cakephper cakephper市川

TLS/SSLについて暗号化と証明書のチェックをする程度という理解でも困ることは少ないですが、もう一歩踏み込んでどのようなプロトコルになっているか、公開鍵の署名や共通鍵の暗号はどう選ばれ使われているのか、これらのレイヤーを詳しく見ていくと非常に興味深い世界が広がっています。
このセッションでは、そんなTLS/SSLの内部構造に迫り、技術の楽しさを共に味わいたいと思います。

数ヶ月前の私も、TLSについては漠然とした理解しか持っていませんでした。しかし、PHPでTLS1.2を実装する中でその複雑さが実に面白く、やがて「完全に理解した!」と言える境地にたどり着きました。

本セッションでは次の内容を発表する予定です

  • TLSの基礎
  • PHPでの実装ポイント
  • 車輪の再発明の面白さ
17
採択
2024/12/22 13:50〜
トラック5 - 1F 会議室AB
レギュラートーク(25分)

PHPでは気にならないCookie管理の境界線 SSRで直面するサーバーとクライアントの違い

ma_me ma@me

PHPでCookieを管理する際、セキュリティ面やライフサイクルについては意識するものの、
サーバーサイドとクライアントサイドの境界を意識することはほとんどありません。
しかし、近年ではSSR(サーバーサイドレンダリング)の普及により、
サーバーとクライアントの役割が明確に分かれ、Cookieの扱いにも違いが生じています。

このトークでは、PHPとSSRにおけるCookie管理の違いに注目し、
両者の処理の境界がどのように影響を与えるかを解説します。

PHP開発者がSSRで直面しやすい問題点や、それに対するよりベターなプラクティスを紹介し、
Cookie並びにフロントエンド技術への理解をより深めていただくことを目指します。
実践的な知識を持ち帰り、PHPからSSRへの移行に役立ててもらうことを期待しています。

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

PHPで作るWebSocketサーバー ~リアクティブなアプリケーションを知るために~

seike460 清家史郎

昨今リアクティブなウェブアプリケーションが当たり前な世界となっています

そのリアクティブなウェブアプリケーションを支える通信技術に踏み込みたいと考えました

今回はPHPを使ってWebSocketサーバーを構築することで、具体的な手順からWebSocketの基本的な理解を深めます

実際に作ったリアクティブなアプリケーションのデモを通じてWebSocketのが生み出す強力なユーザー体験を、
PHPを通じて学びながら、PHPerとフロントエンドエンジニアを繋ぐ理論について共有が行えると幸いです

  • お話すること

    • WebSocketサーバーをPHPで構築する手順
    • 構築したWebSocketとブラウザが通信を行うデモ
  • 想定聴講者

    • WebSocketを知りたいPHPerとフロントエンドエンジニア
    • WebSocketを作りたいPHPer
7
採択
2024/12/22 14:20〜
トラック2 - 2F 小展示
レギュラートーク(25分)

怖くない!ゼロから始めるPHPソースコードコンパイル入門

zeriyoshi 工藤 剛

みなさんが普段から利用している PHP はどこから入手したものでしょうか。パッケージマネージャや DockerHub のイメージからという人が多いのではないかと思います。
でもちょっとまってください。 PHP はオープンソースプロジェクトであり、コードは誰でも入手することができます。つまり自分でビルドできるのです!

🔓 オープンソースの魔法、解き放とう
🛠️ 自分だけの PHP 、手作りの喜び

今回は以下の内容についてお話します。

  • PHP をソースコードからビルドするメリットについて
  • PHP のソースコードを取得方法
  • ビルド環境の構築方法
  • 代表的なビルドオプション
  • ビルド〜動作確認まで
6
採択
2024/12/22 14:20〜
トラック5 - 1F 会議室AB
レギュラートーク(25分)

20年もののレガシープロダクトに0からPHPStanを入れるまで

tomoki2135 廣部 知生

皆さんは、PHPStanを使って開発していますか?
PHPStanは静的解析ツールであり、PHPの開発をサポートしてくれます。
例えば、未定義の変数のチェック、PHPDocの間違いの確認、型の確認などの機能があります。
これは、動的型付け言語であるPHPで開発していく中で、必ず役に立つ機能です。

さて、私が開発しているプロダクトは、20年前から存在します。
当然、古いコードには型宣言がなく、付け足しの結果、気づかずに未到達コードが生まれてしまったことがあります。
さらには、クラスを利用しておらず、グローバル領域で書かれたコードも多くあります。
そんな古いプロダクトに、いかにしてPHPStanを導入したか、どこに苦労したのか、どう解決していったのかをお話ししたいと思います!

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

Laravel 11 へアップグレード、15分 で終わるのか!?

kitkattsun0531 勝佐拓也

Laravel 11 待望のリリース!
公式のアップグレードガイドを見るとこのような記載が。

『アップグレード見積もり時間:15分』

・・・本当に?

公式が言うのであればそうなのでしょう。
幸い、えんさがそっ♪は PHP 8.3 / Laravel 10 と好条件が揃っている。
では 15分 でアップグレード完遂という高みに挑戦しようではないか。

10