php维护页面,php – Symfony2中的“维护网站”页面
我跟著這個
tutorial.這非常簡單直接.
這是我所需要的.您只需更改參數(shù)然后清除prod緩存,您仍然可以在dev或測試環(huán)境中訪問該應用程序.
在你的parameters.yml中添加:
parameters:
maintenance: false #turn it to true to enable maintenance
underMaintenanceUntil: tomorrow 8 AM
然后定義一個服務:
services:
acme.listener.maintenance:
class: Acme\DemoBundle\Listener\MaintenanceListener
arguments:
container: "@service_container"
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
最后是事件監(jiān)聽器:
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))中引用的模板文件;還有你的罰款.使用{{maintenanceUntil}}顯示在parameters.yml中定義的消息.
總結
以上是生活随笔為你收集整理的php维护页面,php – Symfony2中的“维护网站”页面的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10创建新账户_win10系统卸载
- 下一篇: websocket一直无法链接_.NET