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

如何将Symfony控制器操作集成到遗留PHP页面中?,php,symfony,symfony4,Php,Symfony,Symfony4,我有一个遗留的PHP应用程序和一个Symfony 4.1应用程序。我需要通过将普通PHP页面的部分呈现为预定控制器操作的结果来集成这两者。也就是说,不需要或不需要基于请求进行解析,响应正文应该插入到遗留页面中 换句话说:我希望Symfony对当前请求执行操作,但事先告诉它使用ExampleController::exampleAction()并获取响应(正文)。实现这一目标最干净的方法是什么?好吧,这很奇怪:) 我想试试这样的东西: 1,获取内核的一个实例。检查public/index.php了

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

换句话说:我希望Symfony对当前请求执行操作,但事先告诉它使用ExampleController::exampleAction()并获取响应(正文)。实现这一目标最干净的方法是什么?

好吧,这很奇怪:)

我想试试这样的东西:

1,获取内核的一个实例。检查
public/index.php
了解如何做到这一点。

$kernel=新内核($env,$debug);

2、手动创建请求

$request=新请求([],[],[“\u controller'=>MyController::class.”:::myAction']);

3、处理请求

$kernel->handle($request);

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

使用自定义前端控制器对其进行了测试,请参阅


如果您只需要响应主体,那么使用
$response->getContent()

不完全确定您要问什么,但a允许您在调用控制器操作之前进行一些处理。我主要需要设置控制器和操作,这在kernel.request侦听器中是可能的(也可能是其他侦听器)。不过,在本例中,在创建请求期间添加属性要简单得多!不知道我可以直接将_controller添加到请求中;此外,如果已经设置了_控制器,RouterListener将中止;美好的我想Request::createFromGlobals()也可以$response->sendContent()应该是拼图的最后一块。明天将检查。请求转发(在控制器中)的工作方式与此相同(顺便说一句:)