每次去OK
时,我都想返回/health
,这样做很有效:
HealthController.php
<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Response;
class HealthController
{
public function ok() {
return new Response('OK');
}
}
routes.yaml
health:
path: /health
controller: App\Controller\HealthController::ok
但是有没有一种方法无需创建控制器就能做完全相同的事情?
也许类似于以下内容:
health:
path: /health
return: 'OK'
答案 0 :(得分:1)
我可以想到两种解决方法。使用Twig时,可以使用TemplateController :: templateAction呈现静态模板。参见:https://symfony.com/doc/current/templating/render_without_controller.html
您可以编写一个HealthCheckEventListener
订阅kernel.request
事件,然后在请求包含路径时执行所需的操作。然后,您可以将其重用于其他项目。
答案 1 :(得分:0)
我相信问题是您将拥有一个没有任何控制器的路由,据我所知,这在Symfony中是不可能的。实际上,我认为在每个MVC框架中都需要一个控制器来控制输出,因为这是MVC框架的主要原理之一。