はじめに
BASE FeatureDev3Group でWebアプリケーションエンジニア をしている Capi です。
2025/3/21(金)- 3/23(日)の3日間、BASE株式会社もゴールドスポンサーとして協賛したPHPerKaigi 2025が開催されました。今回はPHPerKaigi 2025に参加したメンバーのコメントや感想をお届けします!
PHPerKaigiとは
PHPerKaigiは、オープンソースのスクリプト言語 PHP (正式名称 PHP:Hypertext Preprocessor)を使用している方、過去にPHPを使用していた方、これからPHPを使いたいと思っている方、そしてPHPが大好きな方たちが、技術的なノウハウとPHP愛を共有するためのイベントです。コミュニティ貢献活動の一環として、今年はゴールドスポンサーとして協賛しました。
登壇者コメント
Saki Takamachi 高町咲衣 @takamachi1saki
BASEにてバックエンドエンジニアをしています、さきち(高町咲衣)です! PHP Foundationのコア開発者(専門領域 PDO、BCMath)、そしてPHP 8.4のRelease Managerをやらせていただいています。
今回の登壇では、PHP 8.4で大幅にパフォーマンスアップしたBCMathについてお話させていただきました。
BCMathはPHP8.4での変更箇所が本当に多く、40分に収めるために敢えて取り上げなかった箇所もありましたが、大きな変更点はなんとか全てお伝えできたかと思います。
C言語でかなり低レイヤ寄りの内容となりましたが、たくさんのフィードバックをいただけて励みになりました!
php-srcの中身についての話だったので興味を持ってもらえるかという不安があったのですが、本当にたくさんの方々が来てくださり、この内容で登壇させていただいて良かったと思っています。
たくさんの国がある中、間違いなく日本のPHPコミュニティは、PHPを支える主要なコミュニティのひとつだと実感した登壇となりました。
プログラミングをするパンダ(@Panda_Program)
BASE にて Advanced Engineer をしておりますプログラミングをするパンダです。去年末までその肩書きだったのと通りがいいので社外ではシニアエンジニアと名乗っています。社内での正式な肩書は Advanced Engineer です。ややこしいのでシニアエンジニアって思ってもらって大丈夫です。
さて、今回はBASEのリアーキテクチャの中心地であるモジュラーモノリスについて紹介しました。PHP界隈ではまだBASEはレガシーなアプリケーション上で開発していると思われているのかもと感じていたため、そうではなくてクリーンなアーキテクチャで日々開発しているんだということを伝えたかったためです。
モジュラーモノリスでスケーラブルなシステムを作る - BASE のリアーキテクチャのいま
本発表は、テックリードである kawashima さんのPHPerKaigi 2022の発表の続編となることを意識して作りました。
BASE大規模リアーキテクチャリング
自分の方はモジュラーモノリスの概要説明にとどまりましたが、技術的な深い話はいつかどこかで kawashima さんや熱意のあるメンバーがしてくれると思います。
PHPerKaigi 2025は登壇もセッションへの参加も本当に楽しませて頂きました。スタッフの方々、参加された方々、みなさんありがとうございました!
02 (@cocoeyes02)
BASE BANKにてフルサイクルエンジニアをしています、02です。
今回は登壇と1つアンカンファレンスに登壇しました。
PHP8.4におけるJITフレームワークIRと中間表現について理解を深める
当セッションでは、PHP8.3までのPHPのコンパイルについて簡単に説明しつつ、PHP8.4で導入されたJITコンパイラ内の中間表現および中間表現フレームワークIRについて概要の解説をしました。
40分というのはあっという間で、いくつか概要や表面的なところに留めた内容になったところもありました。特に最適化の部分はアルゴリズムについてガッツリ解説するのではなく、PHPのコードを例にしてどういうことをやっているのか雰囲気を感じとれるようにする流れにしました。
印象的だったのは、中間表現の前にそもそもJITについての質問がいくつかあったことが記憶に残っています。スライドにも書いてある通り、範囲を絞ってもそれだけで1トピックの発表になる分野なので、JITはJITで話しても良いかもしれませんね。
また、アルゴリズムについてガッツリ解説パートも何らかの形でアウトプットしたいなと個人的には思っております。
meihei (@meihei)
BASE で PHPer をしています、meihei です。
PHPerコードバトル準々決勝・準決勝に出させていただき、「List とは何か?」というタイトルで LT を発表させていただきました。
PHPerコードバトルは、簡単なPHPのコードを制限時間内でより短く書いた方が勝ちというバトルでした。
普段の業務であれば絶対に使わないようなコードの書き方をふんだんに使い、より短い書き方を選択し続けました。とても楽しかったです。
<?php echo$s=($_="str_repeat")('*',$w=fgets(STDIN))." "; foreach([...range(1,$w/2),...range($w/2-1,1)]as$i) echo$_(' ',$i).'* '; echo$s?>
↑準々決勝で会場を沸かせたコード。標準入力から渡された整数からΣの形に*
を出力するという問題でした。
「List とは何か?」という発表では、PHP 8.1 から追加された array_is_list という関数の RFC を読み解いて、仕様・静的解析・内部実装の視点から解説しました。普段から何気なくリストを使っているかと思いますが、新たな気づきを得るきっかけとなってもらえると幸いです。
現地で見たセッションを一部紹介
当日イベントに参加したCapiさん、Hiroki Otsukaさんに、現地で見たセッションのうち特に気になったセッションのレポートをいただきました!
コードバトル @OtsukaHiroki
今回初開催となるコードバトルのmeiheiさんが参加された準々決勝・準決勝を観戦しました。
元々コードゴルフという競技を知らず、どのような対戦をするのかワクワクしながら観戦を始めました。
いかにコードを短く書くかが重要なので、普段のコーディングでは絶対に使わないような記述や関数が大量に出てきて、とても勉強になりました。
どのようなコードが出てきたかはmeiheiさんが記載していただいているので割愛します。
OpenTelemetryを活用したObservability入門 @OtsukaHiroki
OpenTelemetryを活用したObservability入門 by 清家史郎 | トーク | PHPerKaigi 2025 #phperkaigi - fortee.jp
OpenTelemetryというツールを利用したObservabilityを向上させるための仕組みなどを解説されているセッションでした。
OpenTelemetryでの計装を切り口にObservabilityの利点や実際の分析方法を改めて理解することができました。
弊社ではNew Relicを利用しておりOpenTelemetryは利用していないのですが、特定のベンダーに依存しないOpenTelemetryの利点なども詳細にご説明いただき、OpenTelemetryにも興味が湧いてくる内容でした。
技術的負債を正しく理解し、正しく付き合う @OtsukaHiroki
技術的負債を正しく理解し、正しく付き合う by 河瀨 翔吾 | トーク | PHPerKaigi 2025 #phperkaigi - fortee.jp
技術的負債とは何か、正しく付き合うためにはどのように考えれば良いのかなどを解説されたセッションでした。
技術的負債については開発者としては切っても切れない問題だと思っています。
私自身も今まで何度も向き合ってきたのですが、「技術的負債は適切にコントロールする」や「腐敗防止層」「リファクタリングを日常のルーティンにする」など、技術的負債との付き合い方の色々な考え方を新たに知ることができました。
すぐに始められる内容もあったので、早速取り入れてみたいと思う内容でした。
※安全に倒し切るリリースをするために: 15年来レガシーシステムのフルリプレイス挑戦記 @Capi
安全に倒し切るリリースをするために:15年来レガシーシステムのフルリプレイス挑戦記 by さくらい | トーク | PHPerKaigi 2025 #phperkaigi - fortee.jp
さくらい さんの「15年間継ぎ足し継ぎ足しで開発してきたECサイトのコア機能を刷新。また、リリース後の障害発生を0に抑えた」という内容の登壇でした。
ペンギンテストという手法を自分は初めて知りました。ペンギンテストを使うことでバグを発生させないリリースはもちろん、過去の負債を返済するというところが非常によかったです。
登壇の中でペンギンテストの注意点とその対応例もお聞きすることもできました。リプレイスプロジェクトに取り組む機会があれば取り入れたいなと思うので自分の頭の引き出しに入れておきます。
ソフトウェア開発におけるインターフェイスという考え方 by 小山健一郎 @Capi
ソフトウェア開発におけるインターフェイスという考え方 by 小山健一郎 | トーク | PHPerKaigi 2025 #phperkaigi - fortee.jp
小山健一郎 さんの「身近に存在するインターフェイスを観察しながらソフトウェアおけるインターフェイスを抽出してみよう」という内容の登壇でした。
世の中にあるインターフェイスの説明から始まり、PHP, Goのコードを例に出しながらプログラミングのインターフェイスについてご意見聞けました。
インターフェイスは提供するものと利用するものの取り決め、つまり契約とも言える。という部分は面白かったです。また、APIやデータベーススキーマも提供者と利用者がいてその間にある契約と言えるのではないかという話しも面白かったです。
最後のQAタイムで「インターフェイスを認知するためにはどうしたら良いですか?」という質問があり、「まず触れてみてください」という回答がありました。実務はもちろん実務外でもインターフェイスを使った実装をしてみようと思います。世の中は想像以上にインターフェイスで溢れてるかもしれません。
PHP実行環境の歴史 PHP-FPMからFrankenPHPの誕生へ @Capi
PHP実行環境の歴史 PHP-FPMからFrankenPHPの誕生へ by ma_me | トーク | PHPerKaigi 2025 #phperkaigi - fortee.jp
ma_me さんの「PHPってどうやって動いてるんだっけ?その歴史は?に答える内容」の登壇でした。
Apache + CGI + PHP で動いていた時代から始まり Go製のWebサーバーCaddyにPHPを統合したFrankenPHP誕生までの流れを図を用いて説明していただきました。
自分は前職でもPHPを触っておりdocker-composeを書く機会もありました。その時に自分自身が思っていたことが登壇の内容で触れられて嬉しかったです。
新しいものの方が優れている というのではなく 昔の構成も今は進化している という話しや 最近出てきた技術にもメリットデメリットがあって新しいものを実戦に投入することが必ずしも正解ではない という話しが聞けて良かったです。
再演: The PHPer’s Guide to Daemon Crafting, Taming and Summoning @Panda_Program
uzulla さんがPHPで Daemon(デーモン)のプログラムを作ったというセッションでした。
難しそうな内容もさることながら uzulla さんの会場の盛り上げ方が上手いの何の。そこで紹介されていたPHPで非同期処理を書くための amphp というライブラリも初めて知って、ああ、テックカンファレンスに来たなと思いました。またスライド見返して復習したいと思います。デモ動画も最高でした!
パスキーでのログインを実装してみよう! @Panda_Program
パスキーでのログインを実装してみよう! by ヒビキ | トーク | PHPerKaigi 2025 #phperkaigi - fortee.jp
hibiki_cube さんがパスキーの仕組みを解説するセッションでした。去年が初登壇だったとのことですが、話の構成やスライドがとてもわかりやすかったです。
パスキーの仕組みや特徴がパスワードとの比較でわかりやすく解説されていました。またその場でパスキーログインを試せるデモサイトが用意されていて、参加者がパスキーでログインをすると書き込みができる掲示板のようなサイトでした。
Q&Aで「古い端末の場合はどうするのか」という難しそうな質問でも、ブラウザが対応していればQRコードが出てくる仕組みがあるなど的確に答えられているのが印象的でした。とても安心感があり、同じスピーカーとして見習いたいなと思いました。
おわりに
協賛活動、社員のスピーカー参加を通して PHPコミュニティの盛り上がりに貢献でき、弊社としても大変有意義な時間となりました。 スタッフの方々には業務でお忙しいにも関わらず、多くの時間をイベント準備へ注いでいただいたかと思います。この場を借りて御礼申し上げます。