$data = array(
'type' => $request->request->get('type'),
);
$controller = null;
switch ($data['type']) {
case 'post':
$controller = (new \Bot\Controller\PostController())->indexAction();
break;
case 'message':
$controller = (new \Bot\Controller\MessageController())->indexAction();
break;
default:
die();
}
return $controller;
})->before(function (Request $request) {
if (0 === strpos($request->headers->get('Content-Type'), 'application/json')) {
$data = json_decode($request->getContent(), true);
$request->request->replace(is_array($data) ? $data : array());
}
});
А есть ли более универсальный способ?
зачем тебе вообще контроллеры тут? Какой контроллер должен обработать запрос ты можешь описать в роуте. А внутри этого контроллера выбрать сервис который должен что то сделать с запросом и вернуть результат
Обсуждают сегодня