採択
パンフ記事(8ページ)

PHPStan型付けマニュアル2025

tadsan うさみけんた

PHPStanは明示的な型宣言と型推論、そして動的型拡張の3種類を組み合わせることで動的言語に実用的な型付けを提供する静的型検査ツールです。

本記事では「PHPStanクイックガイド2023」「キミにも作れるPHPStan拡張」の内容を踏まえ、前述の3種類の型付け方法の考え方をもとにあなたのコードに効率よく安全に型付けできるようにするための指針を提供します。

4
採択
2025/03/23 10:30〜
Track A
レギュラートーク(40分)

PHPで作るPHP~セルフホストできる言語処理系を作ろう~

nsfisis nsfisis

何らかの技術の理解を深めるのに最も適した方法は、その技術のサブセットを自分で実装することです。
PHP、ひいてはプログラミング言語というものを理解するために、PHP で PHP のサブセットを実装しましょう。
プログラミング言語処理系における「セルフホスト」とは、その処理系のソースコードをその処理系自身が処理できることを指します。つまり、今回作るPHP処理系の上でそのPHP処理系を動かすことを目指します。

話すこと

PHP で書く PHP 処理系(のサブセット)の作り方

  • 字句解析
  • 構文解析
  • 実行 (今回の実装では AST を直接実行します)

必要なソースコードはすべて公開され、このトークを聞かれた方が同じものを作成できるように構成します。

話さないこと

実際の PHP 処理系 (php-src) の実装方法に近づけることは目指していません。説明のしやすさや実装の容易さを考慮し、適宜アプローチは変更します。PHP 処理系へのコントリビュート等を目標としたものではありません。

6
レギュラートーク(20分)

SOLID原則の「リスコフの置換原則」と仲良くなる

asumikam asumikam

オブジェクト指向を学ぶ私たちは、必ず一度は「SOLID原則」に触れる機会があると思います。
私も何度も学習を重ねる中で、その原則がもたらす恩恵や、守ることの重要性を徐々に理解してきました。

…ただ、「リスコフの置換原則(LSP)」だけは「これを守るとどう良いのか?」がいまいちしっくりきていませんでした。
「同じ気持ち!」なあなたに向けて、このセッションでは、以下のようなお話をします。

・LSPとは何か?よくある例と「なぜピンとこないのか」
・実際に私が遭遇したLSP違反の具体例
・LSPと"継承"の関係性をしっかりと理解する

「なるほどLSP完全に理解した!」といってもらえるようなトークにします!

1
採択
2025/03/22 13:35〜
Track A
レギュラートーク(40分)

私の愛したLaravel 〜レールを越えたその先へ〜

KentarouTakeda 武田 憲太郎

2年前、私は「Laravelへの異常な愛情」と題し、Laravelの基礎的な考え方と、そのレールがもたらす開発上の効果を紹介しました。Laravelをモデルに対するCRUDに特化したリソース志向フレームワークと捉え、コード量を削減しスタイルを統一する、これがLaravel Wayです。

しかし、現実のアプリケーションが、この枠組みの範囲に収まることはありません。

枠組みを超えた要件はプロジェクト固有の設計やルールで解決する必要があります。この試みは、成功することもありますが、それが「ほころび」となりコードベース全体の保守性を脅かすこともあります。これもまた、Laravelというフレームワークの特徴です。

逆に考えましょう。枠組みの外に出るのではなく、枠組み自体を拡張すれば良いのです。その手法を紹介します。

個別のテクニック

  • 認証の拡張
    認証プロバイダを理解し、Eloquentに依存しない認証や外部の認証基盤との連携を実現する
  • リクエスト処理の拡張
    Laravelの処理ライフサイクルを理解し、変則的な要件に対応する
  • Eloquentの拡張
    データベースドライバを理解し、データベース固有機能を自在に利用する
  • レスポンス処理の拡張
    Responsableを理解し、モダンフロントエンドへ対応する

拡張の考え方

  • あらゆるものを拡張
    Laravelの内部設計を知り、拡張の考え方を理解する
  • 再利用性と安定性
    パッケージ化による責務分離と、バージョンアップへの備え

題材として扱うOSS

  • Laravel Doctrine ORM
  • Laravel PostgreSQL Enhanced
  • Laravel Debugbar
  • Inertia.js
  • Testbench
10
レギュラートーク(40分)

使うデザインパターン、使わないデザインパターン

asumikam asumikam

エンジニアとして始めると必ず知る概念、それが「デザインパターン」です(諸説あり)。
私は新卒の頃、輪読会としてデザインパターンの本を読みました。そして、その知識を持て余したものです。
”デザインパターンを勉強しよう”で知ったデザインパターンは、その適用に失敗することの方が多いように感じます。
「道具として自然に出てくること」が大事であること、そして「道具としてもう使われないものもあること」を認識するのが大切です。
普段使用するフレームワークやライブラリに出てくるデザインパターンを参考に、今でもよく使われるデザインパターンを紹介していきます。

話すこと
・デザインパターンとの向き合い方(共通言語として”デザインパターン”を知っておく)
・フレームワークやライブラリに出てくるデザインパターン
・好んで使わないデザインパターン

※GoFのデザインパターンのことを指します。