Контейнер
класс Container реализует ResettableContainerInterface
Контейнер — это контейнер для инъекции зависимостей.
Он предоставляет доступ к экземплярам объектов (сервисов). Сервисы и параметры — это простые хранилища ключ/значение. Контейнер может вести себя четырьмя способами, когда сервис не существует (или не инициализирован в последнем случае):
- EXCEPTION_ON_INVALID_REFERENCE: Бросает исключение (по умолчанию)
- NULL_ON_INVALID_REFERENCE: Возвращает null
- IGNORE_ON_INVALID_REFERENCE: Игнорирует команду, запрашивающую ссылку (например, игнорирует сеттер, если сервис не существует)
- IGNORE_ON_UNINITIALIZED_REFERENCE: Игнорирует/возвращает null для неинициализированных сервисов или недействительных ссылок
Свойства
| protected | $parameterBag | ||
| protected | $services | ||
| protected | $fileMap | ||
| protected | $methodMap | ||
| protected | $factories | ||
| protected | $aliases | ||
| protected | $loading | ||
| protected | $resolving | ||
| protected | $syntheticIds |
Методы
| __construct(ParameterBagInterface $parameterBag = null) | ||
| compile() Компилирует контейнер. | ||
| bool | isCompiled() Возвращает 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 = 1) Получает сервис. | |
| bool | initialized(string $id) Возвращает true, если данный сервис был фактически инициализирован. | |
| reset() Сбрасывает общие сервисы из контейнера. | ||
| array | getServiceIds() Получает все идентификаторы сервисов. | |
| array | getRemovedIds() Получает идентификаторы сервисов, которые существовали во время компиляции. | |
| static string | camelize(string $id) Преобразует строку в верблюжью нотацию. | |
| static string | underscore(string $id) Преобразует строку в нижний регистр с разделителями подчеркивания. | |
| object | load($file) Создаёт сервис, загрузив его файл фабрики. | |
| mixed | getEnv(string $name) Извлекает переменную из окружения. |
Подробности
__construct(ParameterBagInterface $parameterBag = null)
Параметры
| ParameterBagInterface | $parameterBag |
compile()
Компилирует контейнер.
Этот метод выполняет два действия:
- Значения параметров разрешаются;
- Набор параметров замораживается.
bool isCompiled()
Возвращает true, если контейнер скомпилирован.
Значение возврата
| bool |
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 = 1)
Получает сервис.
Параметры
| string | $id | Идентификатор сервиса |
| int | $invalidBehavior | Поведение при отсутствии сервиса |
Значение возврата
| object | Соответствующий сервис |
Исключения
| ServiceCircularReferenceException | При обнаружении циклической ссылки |
| ServiceNotFoundException | Если сервис не определен |
| Exception | если при разрешении сервиса было выброшено исключение |
См. также
| Reference |
bool initialized(string $id)
Возвращает true, если данный сервис был инициализирован.
Параметры
| string | $id |
Значение возврата
| bool | true, если сервис был инициализирован, иначе false |
reset()
Сбрасывает общие сервисы из контейнера.
Контейнер не предназначен для повторного использования после сброса в обычном рабочем процессе. Этот метод предназначен для освобождения ссылок для подсчета ссылок. Последующий вызов ContainerInterface::get создаст новый экземпляр общего сервиса.
array getServiceIds()
Получает все идентификаторы сервисов.
Значение возврата
| array | Массив всех определенных идентификаторов сервисов |
array getRemovedIds()
Получает идентификаторы сервисов, существовавших во время компиляции.
Значение возврата
| array |
static string camelize(string $id)
Преобразует строку в верхний регистр с большой буквы.
Параметры
| string | $id | Строка для преобразования |
Значение возврата
| string | Преобразованная строка |
static string underscore(string $id)
Преобразование строки в нижний регистр с символом подчеркивания.
Параметры
| string | $id | Строка для преобразования |
Значение возврата
| string | Преобразованная строка |
protected object load($file)
Создает сервис, загрузив его файл-фабрику.
Параметры
| $file |
Значение возврата
| object | Созданный сервисом файл |
protected mixed getEnv(string $name)
Извлекает переменную из окружения.
Параметры
| string | $name | Имя переменной окружения |
Значение возврата
| mixed | Значение для предоставленного имени переменной окружения |
Исключения
| EnvNotFoundException | Когда переменная окружения не найдена и не имеет значения по умолчанию |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/DependencyInjection/Container.html