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

Метод has класса ContainerBag

Метод has класса ContainerBag проверяет, зарегистрирован ли сервис с указанным идентификатором в контейнере зависимостей. Первым параметром передаётся идентификатор сервиса в виде строки. Метод возвращает true, если сервис существует, и false в противном случае.

Класс ContainerBag реализует интерфейс ContainerBagInterface и предоставляет доступ к параметрам и сервисам контейнера. Метод has часто используется совместно с методом get, чтобы избежать ошибок при обращении к несуществующим сервисам.

Синтаксис

public function has(string $id): bool

Пример

Давайте проверим наличие сервиса 'user' в контейнере:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface; use Symfony\Component\HttpFoundation\Response; class ArticleController extends AbstractController { public function index(ContainerBagInterface $bag): Response { $res = $bag->has('user'); return new Response(var_export($res, true)); } } ?>

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

false

Пример

Давайте проверим наличие параметра 'kernel.project_dir' в контейнере:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface; use Symfony\Component\HttpFoundation\Response; class ArticleController extends AbstractController { public function index(ContainerBagInterface $bag): Response { $res = $bag->has('kernel.project_dir'); return new Response(var_export($res, true)); } } ?>

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

true

Пример

Давайте используем метод has вместе с методом get для безопасного получения значения:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface; use Symfony\Component\HttpFoundation\Response; class ArticleController extends AbstractController { public function index(ContainerBagInterface $bag): Response { $id = 'kernel.project_dir'; if ($bag->has($id)) { $res = $bag->get($id); } else { $res = 'not found'; } return new Response($res); } } ?>

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

"/var/www/project"

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

  • класс ContainerBag,
    который предоставляет доступ к параметрам контейнера
  • метод get,
    который возвращает значение параметра контейнера
  • метод all,
    который возвращает все параметры контейнера
  • метод resolveValue,
    который разрешает значение параметра
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить