Relayer ドキュメント
Next.js App Router 風の規約で、ルーティング・API・認証・キャッシュ・DB をひとつの boot エントリにまとめた、規約重視の PHP フルスタックフレームワーク。
はじめに
チュートリアル
ルーティング
機能
- サーバーアクションCSRF 保護付きフォームハンドラ。関数スタイル/クラススタイルの登録方法と、サブコンポーネントからの自己登録(Action::create / PageContext::current)。
- Defer コンポーネントユーザー固有のコンポーネントだけ遅延取得し、ページ本体は CDN キャッシュに乗せる。
- React アイランドサーバーレンダリングされた HTML 内にクライアント React コンポーネントを埋め込む。
- ページ単位のスクリプト$ctx->js() / PageComponent::addJs() / LayoutComponent::addJs() で、ページやレイアウト固有の外部スクリプトを宣言する。
- サービスと DIservices.yaml と AppConfigurator によるサービス登録、オートワイヤ、ファクトリ。
- 認証UserProvider/パスワード認証、ロール保護、Firebase/Cognito の Bearer トークン認証。
- バリデーションZod 風スキーマバリデータ。型・制約・フィールド別エラーと、関数スタイルページ+サーバーアクションでの実践フロー。
- HTTP キャッシュと ETag#[Cache] / $ctx->cache() による Cache-Control・ETag・条件付きGET・304、EtagStore(静的/動的ETag)の解説。
- HTTP クライアントHttpClient による外部 API 取得。DI 束縛、HttpResponse、4xx/5xx は例外でない、リクエストスコープのメモ化。
- データベースDATABASE_DSN による PDO ラッパー Database のオートワイヤとリクエストキャッシュ。
- ロガーMonolog 実装の PSR-3 ロガー。LoggerInterface の DI 束縛、LOG_LEVEL/LOG_FILE、{placeholder} 補間、dev のプロファイラ連携と秘匿化。
- 多言語化 (i18n)依存ゼロのトランスレータ、ファイルベースのカタログ、自動ロケール解決、フレームワーク標準メッセージのローカライズ。設定でオプトイン。
- Tehilim 連携スキーマファーストの DB ツールキット polidog/tehilim を Relayer に組み込み、プロファイラフックでクエリをタイムラインに乗せる。
開発
運用
- CLI コマンドvendor/bin/relayer(init / upgrade / routes / routes:compile / container:compile / profiler:clear)と usephp compile。
- 環境変数と .env カスケードsymfony/dotenv による .env / .env.local / .env.{APP_ENV} の優先順位と、利用できる環境変数の一覧。
- デプロイ(Dockerfile)Relayer アプリ向けの Dockerfile の作り方 — 本番ビルド、PSX 事前コンパイル、ルート事前コンパイル、DI コンテナ事前コンパイル、フロントコントローラ。FrankenPHP / nginx + php-fpm の例。
- CDN キャッシュRelayer アプリを Cloudflare などの CDN 配下に置くときの勘所 — s-maxage によるエッジキャッシュ、HTML を載せる Cache Rule、セッション Cookie で全 BYPASS する罠とその回避、確認とパージ。