Relayer は Next.js の App Router に着想を得た、規約重視の PHP フルスタックフレームワークです。ディレクトリ構造がそのまま URL になり、各ルートは Controller ではなく、Element ツリーを返す Component として書きます。ルーティング・API・サーバーアクション・認証・キャッシュ・DB は、ひとつの boot エントリにまとまります。ビルドステップはありません。
<?php
use Polidog\Relayer\Router\Component\PageContext;
use Polidog\UsePhp\Html\H;
return function (PageContext $ctx): Closure {
$ctx->metadata(['title' => 'Hello']);
return fn () => (
<main className="p-8">
<h1>Hello, {$ctx->params['name']}</h1>
</main>
);
};このクロージャがページ Component です。置けば /hello/world が動き、ルーターへの登録も設定ファイルも要りません。
これはこのサイト自身の src/Pages です。ルーティング設定ファイルはありません。
1 リクエストが通るのはこの 4 か所だけです。ミドルウェアで共通処理、ページで描画、キャッシュヘッダーを付けて、ドキュメントとして書き出す。
このドキュメントサイト自体が Relayer で書かれています。ソースは公開しています。 github.com/polidog/relayer-docs
規約を覚えるより、1 ページ書くほうが早い。