RAKUS Developers Blog | ラクス エンジニアブログ

株式会社ラクスのITエンジニアによる技術ブログです。

PHP Conference 2023【参加レポート】

はじめに

メールディーラー開発課のyamamuuuです。
2023/10/08(日)にPHP Conference 2023が完全オフラインで開催されました。

PHP Conference Japan 2023

ラクスはシルバースポンサーとして協賛し、エンジニア4名が登壇した他、初のブース出展を行いました。
本ブログではイベントの参加レポートと、ラクスからの登壇者本人によるレポートに加え、ブースやイベントの様子もお届けします。

もくじ

参加レポート

型安全なSQLテンプレートエンジンを構築する

report by id:hirobex
うさみけんた さん (@tadsan) による発表です

fortee.jp

SQLインジェクション対策の必要性と、うさみさんが作られたテンプレートエンジン TetoSQL の実装についてのトークでした!

TetoSQLはOSSとして公開されているので
実際にコードを見てみると、よりSQLテンプレートエンジンへの理解が深まるかも……!?

Webアプリケーションのパフォーマンス・チューニングの勘所

report by id:hirobex
曽根 壮大さん (@soudai1025) による発表です

fortee.jp

いざパフォーマンスを改善したい!と思っても、なにから手を付けていいのか、意外とわからないものです。
そんなとき、なにからはじめるべきなのか、どういう情報を取得すべきか、という話から始まり
実際の情報の見方や改善テクニックをお話しいいただきました。

25分で理解する!Symfonyの魅力とその実践的活用法

report by id:Y-Kanoh (@YKanoh65)
角田一平さん( @ippey_s )による発表です

speakerdeck.com

Simpleであることが特徴の Symfony についてまとめられた発表です。

Symfonyコンポーネントの集まりであり、ユーザが必要なコンポーネントを自分で選んで利用することができる仕組みになっています。また、依存を手軽に注入する仕組みも備わっています。

そのほかにも、充実したCLIツールや、DataMapper型のORMであるDoctrineが採用されており、融通がきく作りになっているため、素早くアプリを作成し、疎結合を維持して拡張をすることができるフレームワークであると言えます。

発表ではところどころに Symfony の特徴を端的にあらわすキーワードが入っており、スッと頭に入りやすい内容でした。

PHP8.2から見る、2つの配列

report by id:takaram
meiheiさん (@app1e_s) による発表です。

speakerdeck.com

PHP8.2 で新しくなった、配列の内部実装がテーマです。
PHP の配列は、他の言語で言う配列(リスト)と、一般にマップや連想配列と呼ばれるものが一緒になった少し特殊なデータ構造です。 その内部実装は、添字が0からの連番になっている場合(リスト)とそれ以外(連想配列)とで異なっています。

この2種類の内部実装が、どのようなデータ構造になっているのか、配列の初期化や要素の追加・削除を行ったときに PHP 内部でどんな処理が行われているかが解説されていました。

PHPカンファレンスにありながら、C言語を"完全に理解"できる(?)発表でした!

RubyVM を PHP で実装する〜Hello World を出力するまで〜

report by id:takaram
めもりーさん (@m3m0r7) による発表です。

speakerdeck.com

新たに Ruby を学ぶにあたって「普通に学ぶのは刺激が足りない。そうだ VM を作ろう!」という、なんともすごい学習方法を取った発表者のめもりーさんから、大きく分けて以下3点の解説がありました。

  • VM とは何か
  • RubyVM のしくみ
  • RubyVM を PHP でどう実装するか

Ruby だけでなく PHPVM (ZendVM) で動作していますが、その中で何が起こっているのかを考えたことのある人は少ないかもしれません。
普段なかなか知ることのできない、プログラムの処理系の中身を知ることのできる面白い発表でした。

最後にはデモもあり、実際にPHPRubyが動く様子を見ることができました。 まだ一部機能しか実装されていないとのことですが、PHPRubyが動くというのはなんだか夢のある話ですね!

普段のプロジェクト開発で当たり前すぎてあまり目立たないComposer良いところを褒めに褒めまくるLT

report by id:takaram
yamiiさん (@yamii_qq) による発表です。

speakerdeck.com

多くの PHPer が普段から当たり前に使っている composer、当たり前すぎて気づかないが実はすごい!ということで、composer のいろんなすごいポイントを挙げてひたすら褒めるLTです。

npm / yarn / pnpm のような選択肢がある JavaScript と違って、PHP のパッケージマネージャといえばほぼ composer 一択ということもあり、他と比較したり「ここがすごい」と考えたりする機会は意外と少ないものです。
しかし改めて目を向けてみると、こんなによく出来たツール・エコシステムを無料で使える*1なんて!という気持ちになりますね!

readonly class で作る堅牢なアプリケーション

report by id:rks_hrkw
河瀨 翔吾さん(@shogogg)による発表です。

speakerdeck.com

PHP8.2で追加されたreadonlyクラスについての発表です。
readonlyクラスは全てのプロパティがPHP8.1で追加されたreadonly propertyになるというものです。
readonlyクラスを導入することでオブジェクトをImmutableな状態にすることができます。それにより複雑さを減らし目の前のコードの読み書きに集中できるとのことです。
実際の活用事例やメリットだけでなくデメリットも話されていてreadonlyとは何たるかを知れる発表になっていました。
私もPHP8.2に上げてからはreadonlyをガンガン使っているので、この発表で学んだデメリットなども意識しながら今後も活用していきたいです。

スケーラブルサービス――疎結合に成長するシステムに不可欠な要素

report by id:rks_hrkw
成瀬 允宣さん(@nrslib)による発表です。

speakerdeck.com

アプリのスケーラブルをどう実現していくのかに加え、組織としてのスケーラブルについての内容もある、サービス全体のスケーラブルについての発表でした。
普段曖昧に理解しがちなスケールアップ等を具体的なイメージ共に1から説明されていたので、後の説明も頭に入りやすかったです。
1つずつ課題を解決しながら理想のスケーラブルシステムへと向かっていくような内容になっており、なぜイベントソーシングやメッセージブローカなどが存在するかなども理解しながら聞くことが出来ました。
いつかはこういったシステムも実務で触れてみたいですね~
リハーサル動画も上げてくださっているので是非ご覧になってみてください!
www.youtube.com

ラクスからの登壇セッションのご紹介

PHP略語クイズ

report by id:Y-Kanoh (@YKanoh65)

speakerdeck.com

私、Y-Kanohによる発表です。 LTは、イベントの最後にみんなで盛り上がるものということで、クイズ形式にPHPer関連の略語について紹介しました。 (カー○は関西だとまだ売ってますよ!!)

ノンフレームワークのレガシープロダクトを、Laravelに"載せる"実装戦略と、その後の世界

report by id:hirobex

speakerdeck.com

私の発表です

PHPerKaigi2023で発表させていただいたLTが好評だったので 今回レギュラートーク用にトーク内容を増やして登壇しました!

20年以上開発がつづくレガシープロダクトをLaravelに載せたお話です。

既存コードベースにもPHP_CodeSnifferを導入して楽したい!

reported by id:takaram
私、荒巻 (@takaram71) の発表です。

www.docswell.com

私が担当するプロダクト・配配メールPHP_CodeSniffer を導入した体験談をお話しました。

PHP_CodeSniffer は、PHP コードのコーディングスタイルをチェックしてくれるツールです。たとえば以下のようなポイントをチェックしてくれます。

  • 変数・クラス・メソッドなどの命名(スネークケースかキャメルケースかなど)
  • 空白の使い方(インデント、演算子や括弧の前後など)
  • 配列リテラル[]array()

ただ既存のプロジェクトに実際に導入してみると、新規プロジェクトとは違った難しいポイントがあることがわかったため、それをどう解決したのかをお話しています。
このセッションを聞いたりスライドを見た方が、PHP_CodeSniffer に興味を持っていただけていると嬉しいです!!

ユニットテスト環境整備~みんながテストを書ける環境へ~

report by id:rks_hrkw
私、堀川の発表になります。

speakerdeck.com

私の参加しているプロダクトでユニットテストの環境を導入・整備した体験談です。
困難も多かったですが最近はAI活用を筆頭に技術も進歩しているため、導入の難易度は下がっている印象です。
当然ですがプロダクトの息が長くなればなるほど導入には苦痛を伴うので、私たち以外にもユニットテストの環境が無いという方がいらっしゃればこの発表をきっかけに一歩踏み出していただければ幸いです。

クロージング

report by id:Y-Kanoh (@YKanoh65)

クロージングでは、各地のPHP系カンファレンスのイベント紹介がありました。 私も自分が実行委員長を務めるPHPカンファレンス関西の紹介をするため、登壇させていただきました!

ラクス初のブース出展

report by id:Y-Kanoh (@YKanoh65)

今回は、ラクスとしては初めての「ブース出展」を行いました!!

予想以上に広い会場で、他の企業の方もたくさんいる中での出展でしたが、たくさんの方に来ていただいて非常に盛り上がりました!!

今回、ラクスのブースでは「ラクス認知度アンケート」と「ラクPHPクイズ」を実施しました。

アンケートの結果は以下の通りです!

みなさま、ご協力ありがとうございました!!

アンケート結果

  • 総回答数 220名
  • ラクスを知っていますか?
    • 知っている 174名(79%)/ 知らない 46名(21%)
  • PHPTechCafeを知っていますか?
    • 知っている 82(42%) / 知らない 114(58%)

アンケートに回答していただいた方には、以下の「Web × PHP TechCafe ステッカー」を、 クイズに回答いただいた方には「ラクスオリジナルクリアファイル」を差し上げました!!

PHPTechCafeステッカー

来場者配布物封入の儀

report by id:Y-Kanoh (@YKanoh65)

また、私は前日に東京へ移動し、来場者向けの配布物をトートバッグへ詰める「来場者配布物封入の儀」も行ってきました。 全部で1300個も作る必要があり、スタッフ含め30人程度の人数で数時間、配布物を袋に詰め続けました。

カンファレンスは勝手に生えてくるものではなく、誰かの努力で成り立っているため、手伝える部分は手伝い参加者も一緒になってイベントを維持していければと思います。

大勢で並んだ資料を詰めていく作業
詰め終わった袋の山

まとめ

今回のイベントは発表、参加、ブース出展と大忙しだったようですね。
ブースには多くの方々にご来場いただき大盛況でした!
@YKanoh65 さんが実行委員を務める「PHPカンファレンス関西 2024」も楽しみですね!

PHPerのためのコミュニティ PHPTechCafe

ラクスではPHPに特化したイベントを毎月開催しております。
その名も「PHPTechCafe」!!
次回は10/24(火)に『PHPカンファレンス2023を振り返る』 をテーマに開催します!
まだまだ参加者を募集していますので、ぜひお気軽にご参加ください。

👉PHPerのための「PHPカンファレンス2023を振り返る」PHP TechCafe

最後までお読みいただきありがとうございました!

*1:確かに無料で使えますが、日頃お世話になっているのであれば寄付も考えたいですね😉

Copyright © RAKUS Co., Ltd. All rights reserved.