Spec-Zone.ru › Symfony 3.2

Контейнер

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

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

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

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

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

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

  • 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 isFrozen()

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

ParameterBagInterface getParameterBag()

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

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)

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

Подробности

__construct(ParameterBagInterface $parameterBag = null)

Параметры

ParameterBagInterface $parameterBag Экземпляр ParameterBagInterface

compile()

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

Этот метод делает две вещи:

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

bool isFrozen()

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

Возвращаемое значение

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

ParameterBagInterface getParameterBag()

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

Возвращаемое значение

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 Когда сервис не определён
Исключение Если при разрешении сервиса было выброшено исключение

См. также

Ссылка

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 Преобразованная строка

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

Spec-Zone.ru

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