2011-05-26
■[PHP] Silex でメンテナンス画面表示
Silex の 4 つめのエクステンション。
Silex でメンテナンス画面を表示する。
heavenshell/php-silex-maintenance ? GitHub
元ネタはこれ。
経緯
@brtriver エクステンションに出来そう。
2011-05-26 01:45:36 via YoruFukurou to @brtriver
@heavenshell エクステンションにしたり、エクステンションの名前思い出してる間に書けてしまう量ですがw
@brtriver もちろんそうですが、再利用ですよw 因にエクステンションでもルーティング定義書けますね。なので $app->before とかでフックできますね。
2011-05-26 01:48:23 via YoruFukurou to @brtriver
@heavenshell ですね。$app->beforeでできそうです。書くしかないかw
@brtriver ww 書くのめんどかったら引き受けますw
2011-05-26 01:51:58 via YoruFukurou to @brtriver
@heavenshell おwww じゃあ、お願いしますw
$app->before() でフックできたけど、Response を return としてもディスパッチされてしまうので、素直に id:brtRiver さんのを移植した。
<?php require_once 'silex.phar'; require_once dirname(__DIR__) . '/src/MaintenanceExtension.php'; $app = new Silex\Application(); $app->register(new \MaintenanceExtension(), array( 'maintenance.lock' => __DIR__ . '/maintenance', 'maintenance.file' => __DIR__ . '/maintenance.html', )); $app->get('/', function () use ($app) { return 'index'; }); $app->run();
'maintenance.lock' というキーに設定したファイルを設置すると、作動する仕組み。
この場合 カレントディレクトリに maintenance というファイルを設置する。
ファイルが存在しない場合、メンテナンス画面は表示しない。
デプロイツールとかで、デプロイする前に maintenance のファイルを置き、その後デプロイ、デプロイ完了後に削除というフローを想定している。
一応 Twig にも対応している。
<?php $app = new Silex\Application(); $app->register(new Silex\Extension\TwigExtension(), array( 'twig.path' => __DIR__ . '/views', 'twig.class_path' => '/Path/To/Twig' )); $app->register(new \MaintenanceExtension(), array( 'maintenance.lock' => __DIR__ . '/maintenance', 'maintenance.file' => 'maintenance.twig', ));
TwigExtension を使用し、拡張子が twig の場合 /views/maintenance.twig を探し表示する。
- 12 http://www.google.co.jp/url?sa=t&source=web&cd=1&ved=0CBkQFjAA&url=http://d.hatena.ne.jp/heavenshell/20080103/1199345952&rct=j&q="--with-openssl"&ei=2HLeTZ_iEpLcvQPHo4HMBQ&usg=AFQjCNEiA3qjRL15z2sV_ZJWhDohy2FOSw&sig2=YLFQMWRonulSoLLSSUodRg
- 12 http://www.google.co.jp/url?sa=t&source=web&cd=1&ved=0CBwQFjAA&url=http://d.hatena.ne.jp/heavenshell/20101107/1289123824&rct=j&q=pyramid python&ei=z8PeTZ63BoiGvAOUzO3XBQ&usg=AFQjCNEEcCr8vzFKXGDpFni-jAOpPQdMfA&cad=rjt
- 5 http://longurl.org
- 3 http://d.hatena.ne.jp/brtRiver/20110525/1306341779
- 3 http://htn.to/rGLXMd
- 3 http://twitter.com/
- 3 http://www.google.co.jp/url?sa=t&source=web&cd=2&ved=0CC8QFjAB&url=http://d.hatena.ne.jp/heavenshell/20080605/1212770272&rct=j&q=inner join zend frame&ei=CvveTfCcAYTGvQODwMnOBQ&usg=AFQjCNG1JV_9ItVdAjaEEo9vPa1EdsBO-w
- 3 http://www.google.com/
- 3 http://www.wikiwix.com/
- 2 http://ezsch.ezweb.ne.jp/search/?query=モテ女子&ct=0001&pd=1&sr=0000
