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

Класс ContainerBag

Класс ContainerBag представляет собой обёртку над массивом параметров контейнера внедрения зависимостей. Он реализует интерфейс ContainerBagInterface и позволяет получать доступ к параметрам через методы get, has и all. Основное назначение класса - предоставить сервисам доступ к параметрам контейнера без прямой зависимости от самого контейнера.

Класс ContainerBag принимает в конструкторе объект ContainerInterface. Параметры, хранящиеся в контейнере, становятся доступны через методы этого класса. Метод get возвращает значение параметра по имени, метод has проверяет наличие параметра, а метод all возвращает все параметры в виде массива.

Синтаксис

<?php use Symfony\Component\DependencyInjection\ParameterBag\ContainerBag; $bag = new ContainerBag($container); $bag->get(string $name): mixed; $bag->has(string $name): bool; $bag->all(): array; ?>

Пример

Давайте создадим контейнер с параметрами и обернём его в ContainerBag:

<?php namespace App\Service; use Symfony\Component\DependencyInjection\Container; use Symfony\Component\DependencyInjection\ParameterBag\ContainerBag; class ParameterService { public function getParameters(): array { $container = new Container(); $container->setParameter('app_name', 'article'); $container->setParameter('app_version', '1.0'); $container->setParameter('app_debug', true); $bag = new ContainerBag($container); return [ 'name' => $bag->get('app_name'), 'version' => $bag->get('app_version'), 'debug' => $bag->get('app_debug'), ]; } } ?>

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

["name" => "article", "version" => "1.0", "debug" => true]

Пример

Давайте проверим наличие параметра с помощью метода has:

<?php namespace App\Service; use Symfony\Component\DependencyInjection\Container; use Symfony\Component\DependencyInjection\ParameterBag\ContainerBag; class ParameterService { public function checkParameter(): bool { $container = new Container(); $container->setParameter('app_name', 'article'); $bag = new ContainerBag($container); return $bag->has('app_name'); } } ?>

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

true

Пример

Давайте получим все параметры контейнера с помощью метода all:

<?php namespace App\Service; use Symfony\Component\DependencyInjection\Container; use Symfony\Component\DependencyInjection\ParameterBag\ContainerBag; class ParameterService { public function getAllParameters(): array { $container = new Container(); $container->setParameter('app_name', 'article'); $container->setParameter('app_version', '1.0'); $bag = new ContainerBag($container); return $bag->all(); } } ?>

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

["app_name" => "article", "app_version" => "1.0"]

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

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