Relayer
Docsはじめにgetting-started

はじめに#

Relayer は polidog/rosanna と polidog/rosanna-defer の上に構築された、規約重視(opinionated)の PHP フルスタックフレームワークです。Next.js App Router 風の規約で、ファイルベースルーティング・JSON API・サーバーアクション・認証・バリデーション・キャッシュ・DB をひとつの boot エントリにまとめます。

必要環境#

  • PHP 8.5 以上
  • Composer
  • polidog/rosanna・polidog/rosanna-defer、Symfony の DI / Config / YAML / Dotenv(composer require が自動で導入)

インストール#

composer require polidog/relayer
vendor/bin/relayer init
composer install
php -S 127.0.0.1:8000 -t public

vendor/bin/relayer init は public/index.php・src/Pages/・config/services.yaml・ .env などの雛形を生成します(既存ファイルは触りません)。新規プロジェクトでは gitignore 対象の .env.local に APP_ENV=dev も書くので、そのまま開発モードで動きます。

init は FrankenPHP の開発用コンテナ一式(Dockerfile・php.ini・ compose.yaml・.dockerignore)も生成します。ホストに PHP を入れずに起動できます。

docker compose up --build   # → http://localhost:8000

compose.yaml は app サービスのみの最小構成です(ソースのマウントや MySQL の db サービスはコメントで雛形化)。Dockerfile の dev ターゲットが APP_ENV=dev を設定するのでコンテナ内で .psx をオンザフライコンパイル=ビルドステップ不要。本番は prod ターゲットで vendor/bin/relayer compile を事前実行します(デプロイ 参照)。

エントリポイント#

アプリ全体はこの 1 ファイルから起動します(public/index.php)。

<?php
declare(strict_types=1);

require_once __DIR__ . '/../vendor/autoload.php';

use Polidog\Relayer\Relayer;

Relayer::boot(__DIR__ . '/..')->run();

Relayer::boot() は .env を読み込み、Symfony の DI コンテナを構築し、 AppRouter を返します。->run() を呼ぶまで addCssPath() などの設定を追加できます。

最初のページ#

src/Pages/page.psx がトップページ(/)です。.psx は JSX 風の構文で書ける PHP で、 Rosanna がコンパイルします。

<?php
declare(strict_types=1);

use Polidog\Rosanna\Html\H;

return fn () => (
    <section>
        <h1>It works</h1>
        <p>src/Pages/page.psx を編集してください。</p>
    </section>
);

ディレクトリを切ると URL セグメントになり、[id] ディレクトリは動的セグメントです。詳しくは ルーティングとページ を参照してください。

このサイトについて#

このドキュメントサイト自体が Relayer 製です。本文は Turso (libSQL)を唯一の正として保持し、bin/docs CLI から $EDITOR で直接編集します(中間の Markdown ファイルは持ちません)。サーバー側は Relayer が表示と全文検索を担当します。仕組みは デプロイ を参照。

開発と本番#

APP_ENV=dev は PSX のオンザフライコンパイル・プロファイラ・トレースを有効にします。それ以外の値と未設定は本番扱いで、デプロイ時に vendor/bin/relayer compile で事前コンパイルします。コミットする .env には APP_ENV を書かず、開発モードは gitignore 対象の .env.local で有効にします。clone した直後は echo APP_ENV=dev >> .env.local を実行してください(環境変数 参照)。

最終更新 — 2026-11-04
改訂履歴 (5)
  • v1.1.0: usePHP→Rosanna(rosanna-defer)に合わせて更新
  • v0.31.0: 本番は APP_ENV=prod と relayer compile に修正
  • use-php の GitHub リンク切れを修正(リポジトリ名は polidog/usePHP)
  • バージョン差分表記(vX.Y.Z 追加/破壊的変更/依存バージョン注記)を削除し現在形に整理
  • 新規作成