Silex で簡単メンテナンスモード

inspired by

流行に乗っかって 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!!