Webアプリフレームワークの「簡単メンテナンスモード」コンテストにエントリーされる方はいらっしゃいませんか。http://d.hatena.ne.jp/tanakahisateru/20110527/1306495794 (いろんなフレームワークの性格が見えて面白いと思う)
http://twitter.com/tanakahisateru/status/74078560624721920
ということで、CakePHPの場合です。
CakePHPの場合、routes.phpで単純に、
Router::connect('/*', array('controller' => 'pages', 'action' => 'display', 'maintenance'));
とやっても、うまくいきません。
じゃあどうするのかというと。
Maintenance plugin for CakePHP
というプラグインを使うと簡単に実装できます。(公開してくださっているFusicさんに感謝!
まず、プラグインをインストール。git をつかっているなら
git submodule add -f https://github.com/fusic/maintenance.git app/plugins/maintenance
次に、app_controller.phpの$componentsを書き換えてMaintenanceコンポーネントを有効にします。
このとき、メンテナンス用画面のURLを’maintenanceUrl’で指定するのを忘れずに。
(今回は /pages/maintenance を指定しました。
メンテナンス画面もapp/views/pages/maintenance.ctpとして作っちゃいます。
メンテナンスモードにするには、app/config/bootstrap.phpに
としてフラグを立てればOKです。
で、このプラグインのすごいところは、IPによるメンテナンスON/OFFや、メンテナンスモードでも見せる部分を指定できたり、時限設定ができたりするところ。
詳しくは、プラグインのREADMEを読んでみてください。
(中の人がもっと詳細な記事書いてくれないかなー。
参考リンク:
CodeIgniterで簡単メンテナンスモード – localdisk
Pinocoで簡単メンテナンスモード – なんたらノート 第二期
Silex で簡単メンテナンスモード – ぷぎがぽぎ
symfony 1.4 で簡単メンテナンスモード – ぷぎがぽぎ
Pingback: mod_rewrite (.htaccess) で簡単メンテナンスモード @ php-tips
Pingback: Zend Frameworkで簡易メンテナンスモード |Nullyのぶろぐ
Pingback: 今週の管理人ブックマーク (5/22-5/29) - Sometime PHP