symfony2ウェブアプリケーションで「メンテナンス中のウェブサイト」のページをeasely明確に実装するにはどうすればよいですか?Symfony2のメンテナンス中のウェブサイト
私はSymfony 1ではこれについて何かを見つけましたが、Symfony2では何も見つかりませんでした。
ありがとうございました。
symfony2ウェブアプリケーションで「メンテナンス中のウェブサイト」のページをeasely明確に実装するにはどうすればよいですか?Symfony2のメンテナンス中のウェブサイト
私はSymfony 1ではこれについて何かを見つけましたが、Symfony2では何も見つかりませんでした。
ありがとうございました。
これに続いて、tutorialが続きました。それは非常に簡単で簡単です。 これは私が必要としたものでした。パラメータを変更してプロダクトキャッシュをクリアするだけで、開発環境やテスト環境でアプリケーションにアクセスできます。あなたのparameters.ymlで
は、これを追加します。
services:
acme.listener.maintenance:
class: Acme\DemoBundle\Listener\MaintenanceListener
arguments:
container: "@service_container"
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
そして最後にイベントリスナー:
parameters:
maintenance: false #turn it to true to enable maintenance
underMaintenanceUntil: tomorrow 8 AM
を次にあなたがサービス定義
<?php
namespace Acme\DemoBundle\Listener;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\DependencyInjection\ContainerInterface;
class MaintenanceListener
{
private $container;
public function __construct(ContainerInterface $container)
{
$this->container = $container;
}
public function onKernelRequest(GetResponseEvent $event)
{
$maintenanceUntil = $this->container->hasParameter('underMaintenanceUntil') ? $this->container->getParameter('underMaintenanceUntil') : false;
$maintenance = $this->container->hasParameter('maintenance') ? $this->container->getParameter('maintenance') : false;
$debug = in_array($this->container->get('kernel')->getEnvironment(), array('test', 'dev'));
if ($maintenance && !$debug) {
$engine = $this->container->get('templating');
$content = $engine->render('::maintenance.html.twig', array('maintenanceUntil'=>$maintenanceUntil));
$event->setResponse(new Response($content, 503));
$event->stopPropagation();
}
}
}
を次に、あなただけに持っています$content = $engine->render('::maintenance.html.twig', array('maintenanceUntil'=>$maintenanceUntil));
とあなたの罰金に記載されているテンプレートファイルを追加してください。 parameters.ymlで定義されたメッセージを表示するには、{{ maintenanceUntil }}
を使用してください。
これは助けになるでしょうか? http://stackoverflow.com/questions/16029049/show-maintenance-page-when-lock-file-is-present私は解決策が掲載されていないことを知っていますが、それはあなたに見える場所の方向を与えることができます –
解決策はフレームワークに関係なく私には同じです:サイトがメンテナンス中であるかどうかを記録するconfigファイルを用意してください。おそらく、どこかのフロントコントローラーのような低レベルでチェックし、HTMLページにリダイレクトします。 – halfer