3
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?

🌀 Tempest 〜PHP の新時代を切り開く次世代フレームワーク入門〜

Last updated at Posted at 2025-12-28

ミライトアドベントカレンダー 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

ScreenShot 2025-12-28 22.38.56.png

執筆時の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がルーティングやコマンドなどを自動検出し、手作業の登録を減らす
  • ただし新しいフレームワークなので追従は必要
3
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
3
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?