Spec-Zone.ru › Symfony 3.0

Контейнер

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

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

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

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

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

Идентификатор сервиса может содержать строчные буквы, цифры, символы подчеркивания и точки. Символы подчеркивания используются для разделения слов, а точки — для группировки сервисов в пространства имен:

  • запрос
  • mysql_хранилище_сессий
  • symfony.mysql_хранилище_сессий

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

  • запрос -> getRequestService()
  • mysql_хранилище_сессий -> getMysqlSessionStorageService()
  • symfony.mysql_хранилище_сессий -> getSymfony_MysqlSessionStorageService()

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

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

Методы

__construct(ParameterBagInterface $parameterBag = null)

Конструктор.

compile()

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

bool isFrozen()

Возвращает 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)

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

Подробности

__construct(ParameterBagInterface $parameterBag = null)

Конструктор.

Параметры

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

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)

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

Установление сервиса в значение 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 Строка в нижнем регистре с символами подчеркивания

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

Spec-Zone.ru

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