====== Контроллеры ======
Контроллер - это обработчик точек входа для HTTP запросов. Каждый контроллер независим от другого, но может их вызывать через HTTP редирект
===== Пример простого контроллера =====
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class Test extends AbstractController
{
#[Route('/test', name: 'app_test')]
public function index(): Response
{
return $this->json([
'status'=>'ok'
]);
}
#[Route('/test_me_bad', name: 'app_test2')]
public function index(): Response
{
return $this->json([
'status'=>'bad'
]);
}
}
Что получилось в итоге?
У нашего приложения появился url http://<адрес>/test который на ответ дает JSON строку.
Так же могут использоваться и другие подходы:
Отрисовка страницы описной в /templates/test.html.twig с присвоением переменной Twig foo значения bar
$this->render('/templates/test.html.twig',[
'foo'=>'bar'
]);
Перенаправление на URL по имени в контроллере. Т.е. будет перенаправление на URL - l http://<адрес>/test_me_bad
$this->redirectToRoute('app_test2');
Подробнее [[https://symfony.com/doc/6.4/controller.html|Controller (Symfony 6.4 Docs)]]