我如何在遗留 PHP 页面中集成 Symfony 控制器操作?

How do I integrate a Symfony controller action in a legacy PHP page?

我有一个遗留 PHP 应用程序和一个 Symfony 4.1 应用程序。作为预定控制器操作的结果,我需要通过呈现普通 PHP 页面的部分来集成两者。也就是说,不需要或不需要基于请求的解析,响应主体应插入旧版页面。

换句话说:我希望 Symfony 对当前请求采取行动,但提前告诉它使用 ExampleController::exampleAction() 并获得响应(正文)。实现该目标的最简洁方法是什么?

好吧,这很奇怪:)

我会尝试这样的事情:

1,获取内核实例。检查 public/index.php 如何做到这一点。 $kernel = new Kernel($env, $debug);

2、手动创建请求 $request = new Request([], [], ['_controller' => MyController::class . '::myAction']);

3、处理请求 $kernel->handle($request);

4,发送响应,并终止内核(如index.php)

使用自定义前端控制器对其进行了测试,请参见https://gist.github.com/Padam87/27a7d0825816fa358678bce7a640dd47

如果只需要响应正文,则使用$response->getContent()