この作品について
スマホ119・住まい119などの店舗サイトを動かしているCMS(CakePHP 2.10ベース)を、店ごとの機能やキーを抜いて配れる形に切り出したもの。PHP 7.4〜8.5に対応し、ブロック72種・管理プラグイン24・テーマ4。更新はSHA-256照合と事前バックアップ付きで、失敗すれば中止する。デモ(cms-demo)はNext.jsへの移植版で、72種中65ブロックを移植済み。
Problem
困りごとと、解き方
店舗サイトの土台が古い部品のまま(CKEditor 4.2・PHP 7.4まで)
店固有の機能・APIキー・古いテーマを抜いて配布用に切り出し
店ごとの機能やAPIキーが混ざっていて、他の店に配れない
PHP 8対応・エディタをSunEditorへ刷新
サイトごとに作り直すと保守コストが膨らむ
Vercelで動くNext.js版へ移植(ブロックをコード内の一覧に)
Result
できあがったもの
成果
- Next.js移植版でトップ表示1.1秒→0.39秒、ブロック追加2.1秒→約0.5秒
- 店舗サイトを同一基盤(PHP版)で運用
見どころ
- 実店舗サイト(スマホ119・住まい119)を動かしている本番のCMS
- ブロック72種・管理プラグイン24・テーマ4
- PHP 7.4〜8.5対応(CakePHP 2のPHP 8対応フォークに差し替え)
- 更新はSHA-256照合と事前バックアップ。失敗すれば中止
- Next.js移植版(デモ)はトップ表示1.1秒→0.39秒
How
どう作ったか
- 企画・アーキテクチャ設計・フルスタック開発
- PHP・CakePHP 2.10・SunEditor・Next.js App Router(移植版)・TypeScript・Vercel hnd1
主要機能
- 実店舗サイト(スマホ119・住まい119)を動かしている本番のCMS
- 店固有の機能・APIキー・古いテーマを抜いて配布用に切り出し
- ブロック72種・管理プラグイン24・テーマ4
- PHP 8対応・エディタをSunEditorへ刷新
- PHP 7.4〜8.5対応(CakePHP 2のPHP 8対応フォークに差し替え)
- Vercelで動くNext.js版へ移植(ブロックをコード内の一覧に)
技術的詳細
- フロントエンド・基盤
- PHP / CakePHP 2.10 / SunEditor
- AI・連携・データ
- Next.js App Router(移植版)/ TypeScript / Vercel hnd1
活用シーン
- 店舗サイトの土台が古い部品のまま(CKEditor 4.2・PHP 7.4まで)
- 店固有の機能・APIキー・古いテーマを抜いて配布用に切り出し
- 店ごとの機能やAPIキーが混ざっていて、他の店に配れない
- PHP 8対応・エディタをSunEditorへ刷新
- サイトごとに作り直すと保守コストが膨らむ
- Vercelで動くNext.js版へ移植(ブロックをコード内の一覧に)
Next

