Как интегрировать действие контроллера Symfony в устаревшую страницу PHP? - PullRequest
0 голосов
/ 03 октября 2018

У меня есть устаревшее приложение PHP и приложение Symfony 4.1.Мне нужно объединить обе части путем рендеринга частей простой страницы PHP в результате заранее определенного действия контроллера.То есть, разрешение на основе запроса не требуется или не требуется, и тело ответа должно быть вставлено в устаревшую страницу.

Иными словами: я хочу, чтобы Symfony действовал по текущему запросу, но заранее скажите ему использоватьExampleController :: exampleAction () и получить ответ (тело).Какой самый чистый способ достичь этого?

1 Ответ

0 голосов
/ 03 октября 2018

Ну, это странно:)

Я бы попробовал что-то вроде этого:

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().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...