Spec-Zone.ru › Symfony 2.8

Контейнер

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

Контейнер - это контейнер внедрения зависимостей.

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

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

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

Сервис также может быть определен путем создания метода с именем 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 isFrozen()

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

ParameterBagInterface getParameterBag()

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

mixed getParameter(string $name)

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

bool hasParameter(string $name)

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

setParameter(string $name, mixed $value)

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

set(string $id, object $service, string $scope = self::SCOPE_CONTAINER)

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

bool has(string $id)

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

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

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

bool initialized(string $id)

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

reset()

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

array getServiceIds()

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

enterScope(string $name) deprecated

Вызывается при входе в область.

leaveScope(string $name) deprecated

Вызывается для выхода из текущей области и возврата в родительскую область.

addScope(ScopeInterface $scope) deprecated

Добавляет область в контейнер.

bool hasScope(string $name) deprecated

Возвращает, есть ли в этом контейнере определенная область.

bool isScopeActive(string $name) deprecated

Возвращает, активна ли эта область в данный момент.

static string camelize(string $id)

Преобразует строку в камелообразный стиль.

static string underscore(string $id)

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

Подробности

__construct(ParameterBagInterface $parameterBag = null)

Параметры

ParameterBagInterface $parameterBag

compile()

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

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

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

bool isFrozen()

Возвращает 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, string $scope = self::SCOPE_CONTAINER)

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

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

Примечание: Параметр $scope устарел с версии 2.8 и будет удален в версии 3.0.

Параметры

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

Исключения

RuntimeException При попытке установить сервис в неактивной области видимости
InvalidArgumentException При попытке установить сервис в области видимости прототипа

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(), то метод set() имеет приоритет.

Параметры

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

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

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

Исключения

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

См. также

Ссылка

bool initialized(string $id)

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

Параметры

string $id

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

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

reset()

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

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

array getServiceIds()

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

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

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

enterScope(string $name) устарело

устарело

с версии 2.8, будет удалено в 3.0.

Вызывается при входе в область видимости.

Параметры

string $name

Исключения

RuntimeException При неактивной родительской области видимости
InvalidArgumentException Если область видимости не существует

leaveScope(string $name) устарело

устарело

с версии 2.8, будет удалено в 3.0.

Вызывается для выхода из текущей области видимости и возвращения к родительской области видимости.

Параметры

string $name

Исключения

InvalidArgumentException если область видимости не активна

addScope(ScopeInterface $scope) устарело

устарело

с версии 2.8, будет удалено в 3.0.

Добавляет область видимости в контейнер.

Параметры

ScopeInterface $scope

Исключения

InvalidArgumentException

bool hasScope(string $name) устарело

устарело

с версии 2.8, будет удалено в 3.0.

Возвращает, имеет ли этот контейнер определённую область видимости.

Параметры

string $name

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

bool

bool isScopeActive(string $name) устарело

устарело

с версии 2.8, будет удалено в 3.0.

Возвращает, активна ли текущая область видимости.

Это не проверяет, действительно ли передаваемая область видимости существует.

Параметры

string $name

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

bool

static string camelize(string $id)

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

Параметры

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

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

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

static string underscore(string $id)

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

Параметры

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

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

строка Подчёркнутая строка

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

Spec-Zone.ru

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