Spec-Zone.ru › Symfony 2.7

Контейнер

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

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

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

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

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

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

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

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

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

Методы

__construct(ParameterBagInterface $parameterBag = null)
compile()

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

bool isFrozen()

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

ParameterBagInterface getParameterBag()

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

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, если данный сервис был фактически инициализирован.

array getServiceIds()

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

enterScope(string $name)

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

leaveScope(string $name)

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

addScope(ScopeInterface $scope)

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

bool hasScope(string $name)

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

bool isScopeActive(string $name)

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

static string camelize(string $id)

Преобразует строку в camelized формат.

static string underscore(string $id)

Преобразует строку в underscore формат.

Подробности

__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() ведет себя так же, как если бы сервис никогда не создавался.

Параметры

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

Исключения

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

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

array getServiceIds()

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

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

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

enterScope(string $name)

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

Параметры

string $name

Исключения

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

leaveScope(string $name)

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

Параметры

string $name

Исключения

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

addScope(ScopeInterface $scope)

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

Параметры

ScopeInterface $scope

Исключения

InvalidArgumentException

bool hasScope(string $name)

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

Параметры

string $name

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

bool

bool isScopeActive(string $name)

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

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

Параметры

string $name

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

bool

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/2.7/Symfony/Component/DependencyInjection/Container.html

Spec-Zone.ru

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