Атрибут Head
Атрибут Head вешается на метод
контроллера и привязывает его к HEAD-запросу.
HEAD-запрос похож на GET, но сервер возвращает
только заголовки, без тела ответа. Первым
параметром передаётся путь URL. Вторым
необязательным параметром можно задать имя
маршрута.
Синтаксис
#[Head(path, name: name)]
Пример
Давайте повесим метод контроллера на HEAD-запрос по адресу '/article':
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeHead;
class ArticleController extends AbstractController
{
#[Head('/article', name: 'article_head')]
public function head(): Response
{
return new Response('', 200, ['X-Article' => 'abcde']);
}
}
?>
Результат выполнения кода для HEAD-запроса:
HTTP/1.1 200 OK
X-Article: abcde
Пример
Давайте примем параметр id из URL и вернём его в заголовке:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeHead;
class ArticleController extends AbstractController
{
#[Head('/article/{id}', name: 'article_head_id')]
public function headId(int $id): Response
{
return new Response('', 200, ['X-Article-Id' => (string) $id]);
}
}
?>
Результат выполнения кода для HEAD-запроса по адресу /article/5:
HTTP/1.1 200 OK
X-Article-Id: 5