採択
2024/06/22 10:25〜
Fusicホール
レギュラートーク(15分)

PHP コードの実行モデルを理解する

shin1x1 新原 雅司

PHP コードを実行するために必要なのが、PHP 実行環境です。

多くの Web アプリケーションでは、php-fpm や Apache httpd モジュールの mod_php を利用しているでしょう。こうした環境では、HTTP リクエストごとに独立したコンテクストで PHP コードが実行されます。個々のコンテクストは独立しているので、外部リソースを共有しない限り、お互いの干渉を気にせずにアプリケーションコードを実装できます。

本発表では、このような PHP の動作モデルをご存知無い方を対象に、どのように PHP コードが動作しているのかを図解を交えて解説します。

セッションのゴール
PHP アプリケーションがどのように動作するかイメージできる。

6
採択
2024/06/22 10:25〜
ホライズンテクノロジーホール
レギュラートーク(15分)

SPLから始める「データ構造」入門

o0h_ きんじょうひでき

データ構造、仲良くしていますか?
小難しい、「文系」や独学出身だし触れていない、なんて人も…

特定の問題に特化し、処理を効率的にする存在。
問題に特化する、即ち「意図」が宿る!
何をするコードなのかを表現し操作も簡潔にする、パワフルな選択肢になりえます
「0.001秒を削りたい」場面が少なくても役立つでしょう

数字や式を見ると頭パンク!な人に向け
「コードを簡潔に意図を明確に」という観点から
PHP標準クラス(SPL)でデータ構造の世界に入門するトークです

▼ねらい
仲良くなれそう!のキッカケを作る
▼対象
食わず嫌い、苦手意識を持つ人。1年前の私…
https://php.net/spl.datastructures を見た事がない人
▼話す
データ構造って何が嬉しいの?
SPLには何があって、どんな特徴?
コードを読み易くしてみる、の実践
▼話さない
詳細な計算量やコストの考え方

採択
2024/06/22 10:40〜
Fusicホール
レギュラートーク(15分)

Fat Controller は悪か? ~光のFat Controller・闇のガリController~

stwile871 スタヰル

Fat Controller と聞いて、いい印象が思い浮かばないのはなぜだろう。
Fat Controllerに何かの恨み辛みを含む記事は見たことがあるが、逆は全くない。

そもそもFat Controllerとは何か?
何がFat Controllerを悪者たらしめるのか?

世の中のすべての物事森羅万象には、長所短所あります(諸説ある)。
筆者はFat Controllerに助けられることが、ここ数年でしばしばあったからこそ、Fat Controllerに向き合いたいと思う。

Fat Controllerの真実を、あなたも知りたくはありませんか?

トークで話すこと

  • 開発の進め方
  • MVP
  • 設計
  • テスト駆動開発
採択
2024/06/22 10:40〜
ホライズンテクノロジーホール
レギュラートーク(15分)

並行処理を学びGuzzleと仲良くなる

shimabox しまぶ

昨今、サーバーサイドのお仕事といえばクライアントからのリクエストに応えてjsonを返す簡単なお仕事になっているかもしれません。
ですが、まれに外部APIや内部のサブシステムをHTTP, RESTで呼び出して返却された値を扱う場面もあると思います。
そんなとき便利なのが、そうGuzzleです。

このGuzzle、一言であらわすと便利なHTTPクライアントなのですが、中でも強力なのが非同期リクエストならびに並行処理(Concurrency)を扱えることです。
(我々人類はひとつひとつリクエストを投げてそれを待つ時間など無いのです)

今回のトークでは、

  • Guzzleはどのように並行処理を扱っているのか
    • GuzzleHttp\Promise, Pool について
  • どのようにテストを書けばいいのか

をお話したいと思います。

一緒にこのGuzzleと仲良くなりましょう!

採択
2024/06/22 11:50〜
Fusicホール
レギュラートーク(15分)

有効な使い方を正しく理解して実装するPHP8.3の最新機能

seike460 清家史郎

PHPの最新機能が発表されるたびに、へぇ~って流してしまいませんか?
新しい機能についての記事には目を通すけど、試すまでいかないことはよくあると思います

このトークでは直近のPHP8.3で追加された機能を紹介し、
効果的に活用する方法を実践的なコードとともに解説します

ただ記事をみて終わるだけに留まらない、
実際に解決したい課題とセットで機能の解説を時間の許す限り出来ればと思います

このトークを聞くことで、明日からPHP8.3の新機能を利用して、
皆様がさらにPHPをうまく使えるお手伝いが出来ると幸いです

  • 対象の聴講者

    • PHP8.3の新機能に興味がない方
    • PHP8.3の新機能は知ってるけど、使い方がピンとこない方
  • お話する内容

    • PHP8.3の新機能を具体的なユースケース共にコードを示して紹介
採択
2024/06/22 11:50〜
ホライズンテクノロジーホール
レギュラートーク(15分)

なぜキャッシュメモリは速いのか

tomzoh 長谷川智希

2024年1月、「なぜキャッシュメモリは速いのか」が話題になりました。
この質問に答えるのはなかなか難しく、X(Twitter)ではいろいろな回答がされていました。この回答はさまざまな立場・理解からされていて、Xのタイムラインをご覧になっていた方はいまいちしっくりこなかったのではないでしょうか。

このトークでは「なぜキャッシュメモリは速いのか」に答えるのに必要な知識を、初心者の方にもわかりやすくご説明します。

  • キャッシュメモリとは何か
  • なぜキャッシュメモリを使用するのか
  • キャッシュメモリとメインメモリは何が違うのか
  • 結局なぜキャッシュメモリは速いのか

キャッシュの使いこなしは現代コンピュータにおいて避けることはできず、キャッシュを制するもののみがコンピュータを高速に動作させられると言っても過言ではない状態です。キャッシュを理解し、キャッシュを楽しみましょう!

採択
2024/06/22 14:20〜
Fusicホール
レギュラートーク(15分)

WebサイトのXSS脆弱性絶対転がす ―Content Security Policyのすすめ―

hoge 小川

WEBサイトにユーザがJavaScripを埋め込めると、任意の操作が可能になってしまい、非常に危険な脆弱性となります。
例えば管理者権限ユーザを狙ってセキュリティを解除させたり、情報をお漏らししたり…

これはクロスサイトスクリプティング(XSS)と呼ばれ、PHPではhtmlspecialchars()で対策できるようになっています。
とはいえ「全ページ中で1箇所でもhtmlspecialchars()忘れたら死ぬ」は辛くないですか?
自分は大丈夫?他のメンバーは?新人が来たら?そもそも"気をつける"が対策なのは…

この危険かつ面倒なXSSに対し、Content Security Policy(CSP)というHTTPヘッダが強力な防御策になります。
本発表ではCSPヘッダの紹介と実装方法、また実際にPHP + nginx + Vue構成でサービスを作った際にハマったポイントをお話しします

採択
2024/06/22 14:20〜
ホライズンテクノロジーホール
レギュラートーク(15分)

PHPStanの中を知ってコントリビュートしよう

tadsan うさみけんた

昨今PHPStanの活躍する現場が増えていますが、PHPStanがつけてくださる型の気持ちが理解できないという方も多くないのではないでしょうか。

無保証のツールなので懇切丁寧なマニュアルや顧客サポートがないので、適切に使いこなすには少なからず内部の仕組み、特に型付けのための仕組みを知っていることが望ましいです。
PHPStanの技術的な背景には型理論や構文解析などややこしい概念がありますが、実際のところ使うだけなら難しい知識はさほど必要なく、貢献の余地もたくさんあります。

今回のトークでは基礎知識と過去の事例も含めて以下のようなお話をします。

  • PHPStanを開発する上での特徴的なしくみ
  • 最低限だけ知っておきたいPHP構文のはなし
  • PHPStanは型をどのように扱っているのか
  • 型を疑おう
  • functionMap vs DynamicReturnType
採択
2024/06/22 14:35〜
Fusicホール
レギュラートーク(15分)

約半年かけてPHP5.6からPHP7.4までバージョンアップした苦労と工夫

kechiiin_ けちーん

2023/09、PHP5.6からPHP7.0にアップデートしました。
そこから後述のスケジュールでバージョンアップを行なっていきました。

どのように進めていったのか、何に苦労したのか、何を工夫したのか、について話します。


バージョンアップスケジュール
※ECサイト、管理画面の2環境のスケジュールです

・ECサイト
7.0 2023/09
7.1 2023/11
7.2 2023/12
7.3 2024/02
7.4 2024/03

・管理画面
7.0 2023/09
7.1 2023/10
7.2 2024/01
7.3 2024/01
7.4 2024/03

採択
2024/06/22 14:35〜
ホライズンテクノロジーホール
レギュラートーク(15分)

Azureもなかなか良いですよ! - PHPerの為のAzure入門

kaz_29 渡辺一宏

みなさん様々な環境にPHPのアプリをデプロイしていることと思います。

PHPコミュニティでは、Azureを使った事例はあまり公開されていないように思います。
AzureにもPHPをデプロイするのに適した良いサービスがたくさんあるのですが、「Azureはどこから手をつけていいかわからない...」といった話を聞くことも多いです。

そこで、このセッションでは、AzuereでPHPを含む今時なWebアプリケーションを動かすことのできる様々な環境を比較しつつご紹介しようと思います。

想定する聴講者
PHPをAzureで利用する環境に興味がある方
Azureには興味があるが、どこから手をつけて良いかわからない方
Azure初心者〜中級者の方

採択
2024/06/22 15:40〜
Fusicホール
レギュラートーク(15分)

設計の考え方 - インターフェースと腐敗防止層編

okashoi おかしょい/岡田 正平

PHP を含む、クラスベースのオブジェクト指向プログラミング機能を持つ言語(あるいはそれ以外の言語でも)インターフェースを利用できます。
アプリケーションの実装上の設計を考えたことがある人は、インターフェースが使えると何が嬉しいのか?どんな場面で使えばよいのか?と思ったことがあるのではないでしょうか。

本トークでは、また設計の文脈で聞いたことがあるかもしれない「腐敗防止層」というワードとともにインターフェースの使い方、ひいては設計全般に通用する考え方をお話します。

想定聴講者

以下を満たす方が聴講することを想定します。

  • PHP のコードは一通り書ける(フレームワーク上でも可)
  • 機能追加等によって、実装上の設計を考える必要がある(考えたことがある)
  • クラスベースのオブジェクト指向プログラミングにおける「継承」等の挙動はわかる
採択
2024/06/22 15:40〜
ホライズンテクノロジーホール
レギュラートーク(15分)

WebサーバーとPHP実行方式をきちんと理解して、PHPランタイムを適切に使い分ける

samurai_se Kanon

みなさんはWebにおけるPHPランタイムを構築したことはありますか?
ある方もない方も、自分が開発時に使っているPHPランタイムがどのWebサーバーと実行方式の組み合わせで動いているか把握していますか?
把握している方は、なぜその組み合わせで動かしているのか説明ができますか?

私はこれまで、Laravelを使ったPHPランタイムを開発環境の構築も含めて、主にApache, Nginx, Laravelのビルトインサーバーの3パータンで構築してきましたが、きちんと時と場合によって使い分けてきました。

このセッションでは、

  • Webサーバーの違い
  • PHP実行方式の違い

について説明しながら、具体的にどのようにPHPランタイム(特にLaravelに焦点をおいて)を使い分けるのがよいのか?についてお話しできればと思います。

15
採択
2024/06/22 15:55〜
Fusicホール
レギュラートーク(15分)

アプリケーションをリプレイスしたら、チームとサービス運用に向き合えた

zosokh チャン

8年運用しているPHPアプリケーションをリプレイスするのにあたって、目的整理とチームに向き合い、奮闘と決断した話をします。

  • リプレイスの目的とやりたい事を整理できた話
  • 運営を続けなからリプレイスへのリソースを割く話
  • 事業決済者へのリプレイス打診の話
  • 解消したかった技術負債へ取り組みと決断。やる決断、やらない決断。
  • リプレイス実行とその後

長年運用しているサービスの技術負債を解消しきれず、リプレイスを検討している方へサポートになれれば幸いです。

採択
2024/06/22 15:55〜
ホライズンテクノロジーホール
レギュラートーク(15分)

PHPUnit 11 概論

2024/02/02 にPHPUnit 11がリリースされました。
前回のPHPUnit 10ほど変更量はありませんが、それでも無視できない変更がいくつかあります。
例えばデータプロバイダーからの名前付き引数が使用できるようになったり、Deprecatedになったメソッドが20個近くあったり・・・

今回のトークではPHPUnit 11で何が変わったのか、changelogベースで解説していきます。
必要に応じて、実際に動かしたりしながらの解説もしていきます。

https://github.com/sebastianbergmann/phpunit/blob/11.0/ChangeLog-11.0.md
https://github.com/sebastianbergmann/phpunit/blob/main/ChangeLog-11.1.md

採択
2024/06/22 16:10〜
Fusicホール
レギュラートーク(15分)
U25(25歳以下)

クラウド時代におけるオンプレミスLAMP環境のPHPバージョンアップ戦略

picopico_dev 当田昇

現代のウェブ開発では、クラウドベースのアプリケーション開発が主流となっています。
一方で、時代背景や特定のニーズ、コスト等の観点から、オンプレミスを選択する企業も少なくありません。
特にLAMP(Linux, Apache, MySQL, PHP)環境は、その堅牢性と信頼性で、10年以上にわたり多くのウェブアプリケーションの基盤として選ばれてきました。

しかし、オンプレミス環境におけるPHPやOSのバージョンアップは、複雑で手間がかかり、特に運用中のサービスにとっては高いリスクと大きな挑戦を伴います。

本トークでは、実際に運用している大規模サービスのPHP7からPHP8へのバージョンアップをゼロダウンタイムで行った経験を元に、
オンプレミスのLAMP環境において、安全で効率的にバージョンアップを行うための技術的戦略をお話しします。

3
採択
2024/06/22 16:10〜
ホライズンテクノロジーホール
レギュラートーク(15分)
U25(25歳以下)

AWS SDK for PHPによるAmazonECS構成管理

_fs0414 fujitani sora

AWS CDKでサポートされていないPHPでIac的なことをやるとしたら?という興味とその実装が本発表の論点です。
今回はAWS SDK for PHPから提供されるクラスをを使用して全てのインフラリソースをコード化し、その場合の構成管理やメリデメを共有する内容になります。

インフラ構成の題材としては、下記のサービスを使用したシンプルなContainer Applocationを考えています。
VPC, Subnet, ALB, ECS

扱いたいトピック

  • SDK for PHPから提供されるクラスの概要
  • SDKでインフラリソースを管理するためのコードやロギング、トレーサビリティの話
  • PHPプロジェクト内でのディレクトリ管理、実運用に耐えられそうかどうか
3
採択
2024/06/22 17:10〜
ホライズンテクノロジーホール
レギュラートーク(15分)

composer dump-autoloadを「なんとなく使う」から「理解して使う」になる

aki_artisan あかつか

「開発環境でクラスが読み込めないからとりあえず打つ」
「手順書に打てって書いてあるから実行する」

composer dump-autoloadを実行する時にこのように場面に遭遇したことはないでしょうか?

実は、dump-autoloadを打つべきタイミングには、明確な場面があります。内容をよく知ることで、「とりあえず打ってるけど、よく分からなくて不安…」を解消しませんか?

話すこと

  • dump-autoloadを実行したとき何が起こっているか

対象者

  • dump-autoloadをいつ打つべきか分からない方
  • psr-4以外のautoloadを使ってみたい方
採択
2024/06/22 17:25〜
ホライズンテクノロジーホール
レギュラートーク(15分)

Nixを用いて再現可能なPHP環境を用意する

takeokunn たけてぃ

多くの開発者は手元のマシンでPHPで開発をする際Package Manager経由でPHPをインストールしているはずです。
長年プログラミングをしている方なら brew update を叩いたらPHPが壊れるといった経験をしたことがあるはずです。
バージョン競合が発生しやすいため環境依存性や再現性や安定性に課題があります。

本登壇ではNixというPackage Managerの紹介をします。
NixはAtomicなInstallが可能であり、他Packageとの依存がないので何もしてないのに壊れたという状況が起こりえません。
PackageのBuild Scriptを宣言的に記述することができ、Rollbackも簡単に行うことができます。

想定聴講者

  • 既存のPackage Managerで事故ったことのある人
  • 複数プロジェクトで異なるPHP Versionを使っている人
2