0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

先月、PHP関連の技術イベントの中でも最大規模であるPHP Conference2025に行ってきたので、その様子をレポしたいと思います!

PHP Conferenceとは

PHPカンファレンスは、PHP関連の技術を主とした技術者カンファレンスです。 2000年に日本のユーザ会によってPHPカンファレンスが初めて行われ、今年で26回目の開催となります。 これからPHPをはじめる方から、さらにPHPを極めていきたい方まで幅広く楽しめるイベントになるよう様々なプログラムをご用意しております。

公式サイトにある通り、PHPやそれに関連した技術について、様々なトークセッションが聞ける技術イベントです。
技術イベントというと参加するのに勇気が要りそうな感じがしますが、実際に行ってみるとそんなことはなく、PHP初心者の方向けの基礎的な内容も多かった印象です。
今回は、技術トレンドを追う・セッションのメモと感想を書いていきます。

視聴したセッション一覧

  1. PHPの今とこれから2025
  2. AIエージェントはこう育てる:GitHub Copilot Agentとチームの共進化サイクル
  3. エラーハンドリングはtry-catchだけじゃない!Result型で“失敗”を型にするPHPコードの書き方
  4. PHP開発者のための SOLID 原則再入門
  5. 怖くないcomposer

1.PHPの今とこれから

メモ

  • バージョンについて
    • 2025年6月28日時点の最新バージョンは、PHP8.4系
    • 8.5系は、2025年11月にリリース予定
    • PHPのバージョンのライフサイクルは4年(バグ修正2年、セキュリティ修正2年)
    • 会場にいる人に手を挙げてもらったところ、一番使用率が高かったのは8.1~8.3系
    • 8.0系は既にEOLを迎えている(2023年11月26日)
  • 8.5系の新機能について
    • 新しい演算子として「パイプ演算子」が導入される(目玉機能)
    • プロパティ・プロモーションで、finalプロパティが利用可能になる
    • array_first()、array_last()関数の導入

感想

  • 最人気なweb系言語の一つなだけあり、次々と最新バージョンがリリースされるなという印象
  • 最新バージョンである8.4系を使っている人があまり多くなかったのはなぜ?
    • バージョンアップに工数を割くことが難しい?
    • 未発見のバグが潜んでいる可能性があるため、最新バージョンを使うことはリスクが高いと言われるので、バージョンアップをためらっている?
  • 自分の参加したことのあるプロジェクトで使われているのは、主にPHP8.1系(EOL:2025年12月31日)なのでソワソワ
  • パイプ演算子は正直イメージがつきづらいので、リリース後に要学習
  • finalプロパティ、逆に何で8.4で導入されなかった...?
  • array_first()、array_last()は直感的に分かりやすくて◎

2.AIエージェントはこう育てる:GitHub Copilot Agentとチームの共進化サイクル

メモ

  • Github Copilot Agentをチームに導入するコツとしては、下記があるとのこと
    • システムプロンプト(「こう回答してほしい」という指示)を用意する
    • IssueやPR作成など、骨の折れる作業の支援用プロンプトを優先的に作成
    • テーブル定義書やAPI仕様書をInstructions(プロジェクト全体の仕様や文脈を読み取ってもらうための資料置き場)に入れておく
    • メンバーのGithub Copilot Agentに対する知識や活用スキルを、チームとして教育して統一する
  • 導入した結果、PR数・コミット数ともに倍増
  • AIエージェントは開発効率を格段に向上させる

感想

  • チームでの導入イメージが少しついた
  • 搭載されている機能の活用だけでなく、チーム全体で足並みを揃えて活用できるように教育することが大切だと理解
  • ただ、受託開発では教育工数が惜しいことも
  • AIエージェントの導入がチーム単位で難しい場合でも、個人開発or実務で個人的に導入するなら、開発効率向上に寄与するのでは?と思い、Github Copilotを個人開発で触ってみた(VScodeの拡張機能)
    • ディレクトリ構造まで読み取ったうえで、コード補完をしてくれるのは驚き
    • 開発効率の向上だけでなく、プロジェクトの新規参画者のキャッチアップや新卒の教育にも役立ちそう

3.エラーハンドリングはtry-catchだけじゃない!Result型で“失敗”を型にするPHPコードの書き方

メモ

  • PHPにはResult型という型がある
  • 処理の成功と失敗を、戻り値として明示的に表現できる
  • Result型=ビジネスエラー、Exception型=技術的エラーとして表現すると◎
  • エラーハンドリングでも関心の分離を意識しましょう

感想

  • 実務では、独自に定義したException型を処理失敗時の戻り値として定義しがちだが、あまり良くないものと理解
  • ビジネスエラーと技術的エラーを、別の型として表現できるのは分かりやすくてよいと思った
  • エラーハンドリングに限らず、関心の分離は意識していきたい

4.PHP開発者のためのSOLID原則再入門

メモ

  • SOLID原則をかみ砕いて説明する内容
    • (S)単一責任の原則:一つのクラスやコンポーネントは一つの責任だけを持つべきだという原則
    • (O)オープン・クローズドの原則:ソフトウェアの要素(クラスやモジュール)は、拡張に対しては「開いて」おり、修正に対しては「閉じて」いるべきだという原則
    • (L)リスコフの置換原則:親クラスのインスタンスを、子クラスのインスタンスで置き換えても、プログラムの正しさや振る舞いが変わらないようにすべきだという原則
    • (I)インターフェース分離の原則:クライアントが、そのクライアントが必要としないインターフェースに依存すべきではないという原則
    • (D)依存性逆転の原則:上位モジュールは下位モジュールに依存すべきではなく、両方とも抽象(インターフェースなど)に依存すべきだという原則

感想

  • SOLID原則という名前は聞いたことがあったが、中身をあまり良く理解していなかったので、入門学習になった
  • S)単一責任の原則
    • 万能クラスは悪(ViewComposerにビューに渡すためのデータ成形以外の役割を持たせるなど)
    • 分かってても工数を考えてそのままにしてしまいがちなので、時間があるときにリファクタリングしていきたい
  • O)オープン・クローズドの原則
    • 新しい機能を追加したい時に、既存のコードをいじらずに済むようにしよう!というものだと理解
    • 単一責任の原則が守れていると、オープンクローズドの原則を守りやすくなると感じた
  • L)リスコフの置換原則
    • 子クラスで親クラスと違うことがしたいということは、往々にしてあるので、守りすぎると不自由になるのでは?
    • 要学習
  • I)インターフェース分離の原則
    • 大きな一つのインターフェースよりも、小さくて特定の目的に特化したインターフェースを複数作るべきだということだと理解
    • 例:CharacterInterfaceを、WarriorInterface, WizardInterfaceに分離する
    • 確かに、必要のないメソッドに依存することがなくなるので、保守性が上がりそう
  • D)依存性逆転の原則
    • 具象(例えば技術に依存するもの)が抽象に依存してはならないというのは理解
    • バージョンアップのたびに、ドメインやビジネスロジック、もしくはそれに近いコードを書き換えていたら大変だし構造として分かりづらい

5.怖くないcomposer

メモ

  • composerとは:PHPのパッケージマネージャー
    • パッケージマネージャーとは:ライブラリやフレームワークの依存関係を管理するためのツール
    • ライブラリAにはライブラリBが必要...ということが良くあるが、その関係を自動で管理して、必要に応じてインストールやアップデートをしてくれる
  • composer.lockとは:「実際にどのパッケージ・バージョンがインストールされたか」を記録するファイル
    • 環境構築時にcomposer installするとcomposer.lockが参照され、記録されているパッケージ・バージョンをそのままインストールしてくれる
    • チーム全員や本番環境で同じパッケージ・バージョンを保証できる
  • composer.jsonとは:「どのパッケージが必要か」「どのバージョンの範囲ならOKか」を指定するファイル
    • composer update実行時にcomposer.jsonが参照され、記載されているバージョン範囲内で最新のバージョンをインストールしてくれる
  • パッケージは取捨選択すべき

感想

  • composerを実務で使っていたが、「PHP関連のパッケージをよしなにインストールしてくれる便利なもの」くらいの解像度でしかなかったので、一から理解できてよかった
  • composer.jsonは「条件」、composer.lockは「実際の答え」だと理解

会場の雰囲気

セッション中は皆さん真剣そのものでしたが、LT大会と懇親会は終始賑やかな雰囲気でした。
写真は、しゅんそくさんが正規表現をテーマとして登壇されていた時のものです。
肖像権に配慮して写真は公開しませんが、LT大会の後は2時間ほど懇親会(立食パーティー)もあり、技術などの話で盛り上がりました。
2506281641_02.JPG

PHP Conference 2025参加を通して得られたもの

  1. 技術知識が身についた
  2. 自己学習のモチベーション向上につながった
  3. 初めて&一人参加でも、他の参加者と交流できる
  4. 技術イベントへの参加ハードルが低くなった

個人的にはこの4つだと思います。
今後は、PHP以外の技術イベントにも参加してみたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?