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

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

Параметр env атрибута Route позволяет указать окружение, в котором маршрут должен быть доступен. Если текущее окружение приложения не совпадает со значением env, маршрут будет проигнорирован роутером. Это удобно для разделения маршрутов между режимами разработки и продакшена. Значением может быть как строка, так и массив строк.

Синтаксис

#[Route(path, name: name, env: 'dev')]

Пример

Давайте создадим маршрут, доступный только в окружении 'dev':

<?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('/debug', name: 'article_debug', env: 'dev')] public function debug(): Response { return new Response('hello'); } } ?>

При обращении к адресу /debug в окружении 'dev' результат выполнения кода:

"hello"

В окружении 'prod' маршрут недоступен, и Symfony вернёт ошибку 404.

Пример

Давайте передадим несколько окружений в виде массива:

<?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', env: ['dev', 'test'])] public function user(): Response { return new Response('user'); } } ?>

Результат выполнения кода для адреса /user в окружении 'dev':

"user"

Пример

Давайте проверим значение env программно через объект запроса:

<?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('/info', name: 'article_info', env: 'dev')] public function info(): Response { $env = $this->getParameter('kernel.environment'); return new Response($env); } } ?>

Результат выполнения кода в окружении 'dev':

"dev"

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

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