RRelayer
ホーム/はじめに

はじめに#

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

必要環境#

  • PHP 8.5 以上
  • Composer
  • polidog/use-php、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 initpublic/index.phpsrc/Pages/config/services.yaml.env などの雛形を生成します(既存ファイルは触りません)。

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

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

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

エントリポイント#

アプリ全体はこの 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 で、 use-php がコンパイルします。

<?php
declare(strict_types=1);

use Polidog\UsePhp\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 が表示と全文検索を担当します。仕組みは デプロイ を参照。

開発と本番#

.envAPP_ENV=dev は PSX のオンザフライコンパイル・プロファイラ・トレースを有効にします。それ以外(未設定含む)は本番扱いで、デプロイ時に vendor/bin/usephp compile src/Pages で事前コンパイルします。

最終更新: 2026-05-19
変更履歴 (2)
  • バージョン差分表記(vX.Y.Z 追加/破壊的変更/依存バージョン注記)を削除し現在形に整理
  • 新規作成