Silex で簡単メンテナンスモード
inspired by
- CodeIgniterで簡単メンテナンスモード - localdisk
- Pinocoで簡単メンテナンスモード - なんたらノート第三期ベータ
- symfony 1.4 で簡単メンテナンスモード - ぷぎがぽぎ
- CakePHPで簡単メンテナンスモード | php-tips.com
- http://blog.nully.org/2011/05/28/maintenance-mode-with-zend-framework/
流行に乗っかって Silex でやってみます。
メンテナンス画面のルーティングを追加
Silexでどうするのが簡単かと思ったのですが、ルーティングの評価が書いた順番に行われるのだから最初に書けばいいじゃないかということですね。
なので、以下のようにアプリケーションの先頭に書きます。
<?php require_once __DIR__ .'/silex.phar'; $app = new Silex\Application(); $app->match('/{path}', function () { return <<<EOL <!DOCTYPE HTML> <html lang="ja-JP"> <body> <h1>メンテナンス中</h1> </body> </html> EOL; })->assert('path', '.*'); // 他のルーティング $app->get('/', function () {...});
[追記2] getメソッドを使っていましたが、全てのリクエストメソッドを捕獲するためにmatchメソッドに変更しました。
これですべてのアクセスをメンテナンス画面にできます。うん。わかりやすい。
メンテナンスモードを解除するなら全コメントアウトすればいいですね。
なんだったらメンテナンス部分のルーティングを外部ファイルにすれば再利用性もアップ(笑
[追記]
エクステンションができました
ということで、@heavenshellさんがエクステンションを作ってくれました!!
Let's enjoy Silex life!!