Spec-Zone.ru › Symfony 3.3

Контейнер

класс Container реализует ResettableContainerInterface

Container — это контейнер инъекции зависимостей.

Он предоставляет доступ к экземплярам объектов (сервисов).

Сервисы и параметры — это простые хранилища ключ/значение.

Ключи параметров и сервисов нечувствительны к регистру.

Сервис также может быть определен путем создания метода с именем getXXXService(), где XXX — кемализированная версия идентификатора:

  • request -> getRequestService()
  • mysql_session_storage -> getMysqlSessionStorageService()
  • symfony.mysql_session_storage -> getSymfony_MysqlSessionStorageService()

Контейнер может иметь три возможных поведения, когда сервис не существует:

  • EXCEPTIONONINVALID_REFERENCE: Выбрасывает исключение (по умолчанию)
  • NULLONINVALID_REFERENCE: Возвращает null
  • IGNOREONINVALID_REFERENCE: Игнорирует команду обертки, запрашивающую ссылку (например, игнорирует сеттер, если сервис не существует)

Методы

__construct(ParameterBagInterface $parameterBag = null)
compile()

Компилирует контейнер.

bool isCompiled()

Возвращает true, если контейнер скомпилирован.

bool isFrozen() deprecated

Возвращает true, если пакет параметров контейнера заморожен.

ParameterBagInterface getParameterBag()

Получает пакет параметров контейнера сервисов.

mixed getParameter(string $name)

Получает параметр.

bool hasParameter(string $name)

Проверяет, существует ли параметр.

setParameter(string $name, mixed $value)

Устанавливает параметр.

set(string $id, object $service)

Устанавливает сервис.

bool has(string $id)

Возвращает true, если заданный сервис определён.

object get(string $id, int $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE)

Получает сервис.

bool initialized(string $id)

Возвращает true, если заданный сервис был фактически инициализирован.

reset()

Сбрасывает общие сервисы из контейнера.

array getServiceIds()

Получает все идентификаторы сервисов.

static string camelize(string $id)

Кемализирует строку.

static string underscore(string $id)

Преобразует строку в нижний регистр с подчёркиваниями.

string normalizeId(string $id)

Возвращает идентификатор, чувствительный к регистру, используемый во время регистрации.

Подробности

__construct(ParameterBagInterface $parameterBag = null)

Параметры

ParameterBagInterface $parameterBag

compile()

Компилирует контейнер.

Этот метод выполняет два действия:

  • Значения параметров разрешаются;
  • Множество параметров замораживается.

bool isCompiled()

Возвращает true, если контейнер скомпилирован.

Значение возврата

bool

bool isFrozen() устаревший

устаревший

since версия 3.3, будет удалена в 4.0.

Возвращает true, если множество параметров контейнера заморожено.

Значение возврата

bool true, если множество параметров контейнера заморожено, иначе false

ParameterBagInterface getParameterBag()

Получает множество параметров контейнера сервисов.

Значение возврата

ParameterBagInterface Экземпляр ParameterBagInterface

mixed getParameter(string $name)

Получает параметр.

Параметры

string $name Имя параметра

Значение возврата

mixed Значение параметра

Исключения

InvalidArgumentException если параметр не определен

bool hasParameter(string $name)

Проверяет наличие параметра.

Параметры

string $name Имя параметра

Значение возврата

bool Присутствует ли параметр в контейнере

setParameter(string $name, mixed $value)

Устанавливает параметр.

Параметры

string $name Имя параметра
mixed $value Значение параметра

set(string $id, object $service)

Устанавливает сервис.

Установка сервиса в значение null сбрасывает сервис: has() возвращает false, и get() ведет себя так же, как если бы сервис никогда не создавался.

Параметры

string $id Идентификатор сервиса
object $service Экземпляр сервиса

bool has(string $id)

Возвращает true, если заданный сервис определен.

Параметры

string $id Идентификатор сервиса

Значение возврата

bool true, если сервис определен, иначе false

object get(string $id, int $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE)

Получает сервис.

Если сервис определен как с помощью метода set(), так и с помощью метода get{$id}Service(), приоритет всегда отдается первому.

Параметры

string $id Идентификатор сервиса
int $invalidBehavior Поведение при отсутствии сервиса

Значение возврата

object Соответствующий сервис

Исключения

ServiceCircularReferenceException При обнаружении циклической ссылки
ServiceNotFoundException Если сервис не определен
Exception если при разрешении сервиса было выброшено исключение

См. также

Ссылка

bool initialized(string $id)

Возвращает true, если данный сервис был фактически инициализирован.

Параметры

string $id

Значение возврата

bool true, если сервис был инициализирован, иначе false

reset()

Сбрасывает общие сервисы из контейнера.

Контейнер не предназначен для повторного использования после сброса в обычном рабочем процессе. Этот метод предназначен для освобождения ссылок для подсчета ссылок. Последующий вызов ContainerInterface::get приведет к созданию нового экземпляра общего сервиса.

array getServiceIds()

Получает все идентификаторы сервисов.

Значение возврата

array Массив всех определенных идентификаторов сервисов

static string camelize(string $id)

Преобразует строку в верблюжью нотацию.

Параметры

string $id Строка для преобразования

Значение возврата

string Преобразованная строка

static string underscore(string $id)

Преобразует строку в нижний регистр с символами подчеркивания.

Параметры

string $id Строка для преобразования

Значение возврата

string Преобразованная строка

string normalizeId(string $id)

Возвращает идентификатор, чувствительный к регистру, используемый при регистрации.

Параметры

string $id

Значение возврата

string

© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.3/Symfony/Component/DependencyInjection/Container.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API