Php 从routes.yaml返回不带控制器的响应

Php 从routes.yaml返回不带控制器的响应,php,symfony,Php,Symfony,每当我进入/health时,我都想返回OK,这样做非常有效: HealthController.php <?php namespace App\Controller; use Symfony\Component\HttpFoundation\Response; class HealthController { public function ok() { return new Response('OK'); } } 但是有没有一种方法可以在不创建控制

每当我进入
/health
时,我都想返回
OK
,这样做非常有效:

HealthController.php

<?php

namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;

class HealthController
{
    public function ok() {
        return new Response('OK');
    }
}
但是有没有一种方法可以在不创建控制器的情况下完成同样的事情呢

可能是以下情况:

health:
  path: /health
  return: 'OK'

我相信问题是你会有一条没有任何控制器的路线,而这(据我所知)在Symfony是不可能的。事实上,我认为在每个MVC框架中,您都需要一个控制器来控制输出,因为这是MVC框架的主要原则之一

要实现这一点,我可以想出两种变通方法。使用Twig时,可以使用TemplateController::templateAction呈现静态模板。见:


您可以编写一个订阅
kernel.request
事件的
HealthCheckEventListener
,然后在请求包含路径时执行所需操作。然后,您可以将其重新用于其他项目。

如果您只使用路由器组件而不是整个symfony,则选择“是”,否则选择“否”。
health:
  path: /health
  return: 'OK'