PhpSPA クライアント — Vite + Tailwind スターター

Web

概要

PhpSPA + Vite + Tailwind を組み合わせたスターターリポジトリで、サーバーでレンダリングした通常の PHP ページを最初に配信し、その後クライアント側でナビゲーションロジックを「ハイドレート(復活)」させてシングルページ風の高速遷移を実現します。Vite を開発ツールチェインに採用しているため、TypeScript や Tailwind のホットリロード(HMR)が効き、フロントエンドの開発効率が高いのが特徴。既存の PHP レンダリングを活かしつつ段階的に SPA 的な UX を付与したいプロジェクトに向いています。(約300字)

GitHub

リポジトリの統計情報

  • スター数: 3
  • フォーク数: 0
  • ウォッチャー数: 3
  • コミット数: 7
  • ファイル数: 14
  • メインの言語: PHP

主な特徴

  • サーバー優先のレンダリングを維持しつつ、クライアント側でナビゲーションをハイドレートして高速化
  • Vite + TypeScript によるモダンなフロントエンド開発(HMR、ESM)
  • Tailwind CSS を利用したユーティリティベースのスタイリング
  • Composer を用いた PHP 側の依存管理で既存 PHP ワークフローに馴染む

技術的なポイント

このスターターの核は「サーバーで完全なページを返す(サーバー優先)→ クライアントでその振る舞いを補強する(ハイドレーション)」というアーキテクチャにあります。初回レンダリングは従来の PHP レスポンスで行うためSEOや初期表示速度、アクセシビリティを損なわず、JavaScript を必要最小限にとどめたい運用方針に適合します。クライアントサイドでは Vite を使って TypeScript ベースのスクリプトをバンドル(開発時は ESM と HMR)し、ページ間リンクのクリックをインターセプトして非同期でコンテンツだけを差し替えることで遷移を高速化します。このとき DOM の差分更新やイベントハンドラの再接続(ハイドレート)を行うことで、見た目は SPA、実態はサーバー主導のレンダリングというハイブリッドな動作になります。

フロントエンドのビルドは Vite に任せ、Tailwind はユーティリティクラスでスタイリングを素早く行えるように構成。開発時は Node(推奨 18+)と Vite の dev サーバーで素早いフィードバックを得られ、プロダクションではビルド済みの静的アセットを PHP アプリケーションに組み込んで配信します。PHP 側は Composer 管理で、既存のフレームワークやミニマルなルーティング構成にも容易に組み込める設計が期待されます。結果として、フロントエンドのモダンツールを取り入れつつ、サーバー中心のアプリケーション設計を保てる点が本プロジェクトの魅力です。(約1000字)

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • LICENSE: file
  • README.md: file
  • app: dir
  • composer.json: file

…他 9 ファイル

補足(構成の想定と役割)

  • app ディレクトリ: PHP 側のコントローラー/ビューやルーティングロジックを格納する想定。サーバーサイドでのページレンダリングとレスポンス構築を担います。
  • composer.json: PHP の依存関係(もしあれば)やオートローダー設定を記述。プロジェクトを PHP エコシステムに統合するためのエントリポイントです。
  • README.md / LICENSE: プロジェクトの導入手順、要件(PHP 8.4+、Node 18+、Vite 5)や利用許諾情報が記載されています。導入手順では通常、Node の依存インストール、Vite の dev 起動、ビルドと PHP サーバーの組み合わせについて触れられているはずです。
  • その他のファイル(想定): package.json や Vite の設定ファイル、TypeScript のエントリポイント、Tailwind の設定・スタイルファイル、public ディレクトリに置かれるエントリ HTML / PHP ファイルなど、フロントエンド資産とビルド出力を管理する構成が想定されます。
  • デプロイ: ビルド済みのアセットを public 配下に配置し、通常の PHP サーバー(Apache/nginx + php-fpm 等)で公開する流れが想定されます。

まとめ

サーバー主導のレンダリングを保ちながら段階的に SPA 的な体験を導入したいチームに適した、実用的なスターターです。(約50字)

リポジトリ情報:

READMEの抜粋:

🚀 PhpSPA + Vite Starter

A PhpSPA boilerplate that serves PhpSPA pages first, then hydrates navigation with Vite + TypeScript + Tailwind.

PHP Version Node Version [Vite] …