ミライトアドベントカレンダー 18日目の記事です。
🌀 Tempest 〜PHP の新時代を切り開く次世代フレームワーク入門〜
Tempestは、フレームワークの都合でコードが増えるのを嫌う人向けのPHPフレームワークです。特徴はDiscovery で、これはアプリ内のクラスや属性(Attributes)を見にいって、ルーティングやコマンドなどを自動登録してくれる仕組みです。つまり、毎回どこかの設定ファイルに書き足さなくても、コードを書けば勝手につながるのが売りです。
お試しインストール
$ composer create-project tempest/app my-app
$ cd my-app
$ php tempest serve
[Sun Dec 28 21:57:56 2025] PHP 8.4.16 Development Server (http://127.0.0.1:8000) started
執筆時のtempestのバージョンは2.14.0です。
Tempest のディレクトリ構成
お試しインストール直後の構成です。
.
├── app
│ ├── HelloCommand.php
│ ├── home.view.php
│ └── HomeController.php
├── composer.json
├── composer.lock
├── mago.toml
├── phpunit.xml
├── public
│ ├── favicon
│ │ ├── android-chrome-192x192.png
│ │ ├── android-chrome-512x512.png
│ │ ├── apple-touch-icon.png
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── favicon.ico
│ │ └── site.webmanifest
│ └── index.php
├── README.md
├── tempest
└── tests
├── HomeControllerTest.php
└── IntegrationTestCase.php
appディレクトリを見ると、初期状態ではコマンド、コントローラ、ビューが1つのディレクトリ内に存在しています。
Tempestは構造を強制しないため、規模に合わせてサブディレクトリを切ったり、MVCやDDDなど好みの構成に寄せても動きます。
一方でチーム開発では、最初に配置ルールを決めないと責務が散らかりやすいので、軽いガイドラインを作っておくと安心です。
ざっくりした起動の流れ
- エントリポイントは
public/index.phpか./tempest -
FrameworkKernelが起動し、Discoveryの場所とクラスの読み込みが行われます - 次に設定ファイルが読み込まれ、最後に
KernelEvent::BOOTEDが発火します
Tempest の注意点
公式ロードマップでは一部機能が安定版ではないと記載されていて、メジャーバージョンを待たずに仕様が動く可能性があります。
2025/9/16 にv2.0.0がリリースされましたが、2025/12/12 にv2.14.0がリリースされています。
かなりのハイペースでバージョンが上がっており、破壊的変更もいくつかありました。
どんなときに選ぶ?
- 小〜中規模の API ファーストなサービス
- ユースケース駆動でシンプルに切りたいバックエンド
- 型を強くして静的解析・補完を効かせたいチーム
- Laravel ライクな DX が好きだけど、もう少し身軽にしたい人
逆に、巨大なエコシステムをすぐ使いたいときや、既存 Laravel パッケージ頼みの要件が多いときは Laravel 本体の方が安心です。
実案件投入をすぐに決めるより、まずは小さな API や社内向けツールで試して、チームにフィットするか感触を確かめるのがおすすめです。
Tempest は Laravel の代わりになるのか?
結論としては、
「Laravel を置き換えるものではなく、もう一つの選択肢になる」
という位置づけが正しいです。
Laravel の強みは
- 巨大エコシステム
- Blade / Eloquent / Passport / Horizon など充実セット
- 圧倒的実績と安定性
Tempest の強みは
- 軽くてシンプル
- 型活用のしやすさ
- 小規模〜中規模に素直にハマる
まとめ
- Tempestは「アプリのコードに集中させる」「構造を強制しない」を強く打ち出している
- Discoveryがルーティングやコマンドなどを自動検出し、手作業の登録を減らす
- ただし新しいフレームワークなので追従は必要
ミライトアドベントカレンダー 19日目は otk_m_1649さん の 【初心者】Gitの基本、clone〜pushまでの一連の作業・コマンドの備忘録 という記事です。
