我正在编写一个Web应用程序,它有一个前置网站,然后是一个管理控制台.我希望能够设置一个设置,当设置为true意味着在前端网站上显示保留或维护页面.
我的路由配置当前在yaml文件中,并在每个请求上读取.但现在我希望它能够聪明地知道它是否处于维护模式,以及是否将所有路由指向一个特定页面.或者它可以改变路线,以便只有一个.
我认为这可以通过基于设置加载的不同文件来完成,但是这意味着所有路由都是静态的,并且例如无法从数据库中检索.另外,在请求的设置阶段,我在从数据库中读取时遇到了问题.我将系统配置为从DB读取服务,但这似乎在设置阶段不可用,我有错吗?
任何指针都感激地收到了.
罗素
我经常使用Silex的维护页面:
在我定义的同一个地方,我$app['debug'] = true;还定义了一个$app['maintenance'] = true;我用于各种检查的其他变量.
其中我定义了一个维护页面如下:
$app->before(function (Request $request, Application $app) {
if($app['maintenance']){
$subRequest = Request::create('/maintenance', 'GET');
return $app->handle($subRequest, HttpKernelInterface::SUB_REQUEST);
}
});
$app->get('/maintenance', function () use ($app) {
// Here you can return your maintenance page
return $app->render('maintenance.twig');
});
Run Code Online (Sandbox Code Playgroud)
然后,当我打开维护变量时,每个请求都会重定向到维护路径.
正如您所看到的,我不在我的应用程序中使用任何yaml配置文件,但其想法与它们相同.
| 归档时间: |
|
| 查看次数: |
338 次 |
| 最近记录: |