РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
127 of 1361 menu

Параметр schemes атрибута Route

Параметр schemes атрибута Route задаёт список схем URL, по которым доступен маршрут. Если запрос приходит по схеме, которой нет в этом списке, Symfony не сопоставит его с маршрутом и вернёт ошибку 404. Чаще всего параметр используют, чтобы принудительно ограничить маршрут только схемой https. Принимает строку или массив строк.

Синтаксис

#[Route(path, name: name, schemes: ['https'])]

Пример

Давайте ограничим маршрут только схемой https:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index', schemes: ['https'])] public function index(): Response { return new Response('hello'); } } ?>

Запрос по адресу https://example.com/article вернёт ответ:

hello

А запрос по адресу http://example.com/article завершится ошибкой 404, потому что схема http не входит в список разрешённых.

Пример

Давайте разрешим сразу две схемы - http и https:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/user', name: 'article_user', schemes: ['http', 'https'])] public function user(): Response { return new Response('user'); } } ?>

Теперь маршрут доступен по обеим схемам.

Пример

Давайте передадим одну схему строкой, а не массивом:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/abcde', name: 'article_abcde', schemes: 'https')] public function abcde(): Response { return new Response('abcde'); } } ?>

Результат выполнения кода для адреса https://example.com/abcde:

abcde

Смотрите также

  • атрибут Route,
    который вешает метод контроллера на указанный URL
  • параметр path,
    который задаёт путь маршрута
  • параметр name,
    который задаёт имя маршрута
  • параметр methods,
    который ограничивает маршрут HTTP-методами
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить