ContainerBuilder
class ContainerBuilder extends Container implements TaggedContainerInterface
ContainerBuilder — это контейнер DI, который предоставляет API для простого описания сервисов.
Методы
| __construct(ParameterBagInterface $parameterBag = null) | ||
| compile() Компилирует контейнер. | ||
| bool | isFrozen() Возвращает true, если параметровый пакет контейнера заморожен. | из Container |
| ParameterBagInterface | getParameterBag() Получает параметровый пакет контейнера сервисов. | из Container |
| mixed | getParameter(string $name) Получает параметр. | из Container |
| bool | hasParameter(string $name) Проверяет, существует ли параметр. | из Container |
| setParameter(string $name, mixed $value) Устанавливает параметр. | из Container | |
| set(string $id, object $service, string $scope = self::SCOPE_CONTAINER) Устанавливает сервис. | ||
| bool | has(string $id) Возвращает true, если задан данный сервис. | |
| object | get(string $id, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE) Получает сервис. | |
| bool | initialized(string $id) Возвращает true, если данный сервис был инициализирован. | из Container |
| reset() Сбрасывает общие сервисы из контейнера. | из Container | |
| array | getServiceIds() Получает все идентификаторы сервисов. | |
| enterScope(string $name) устарело Вызывается при входе в область видимости. | из Container | |
| leaveScope(string $name) устарело Вызывается для выхода из текущей области видимости и возвращения к родительской. | из Container | |
| addScope(ScopeInterface $scope) устарело Добавляет область видимости в контейнер. | из Container | |
| bool | hasScope(string $name) устарело Возвращает, есть ли у этого контейнера определенная область видимости. | из Container |
| bool | isScopeActive(string $name) устарело Возвращает, активна ли данная область видимости в данный момент. | из Container |
| static string | camelize(string $id) Преобразует строку в верблюжий регистр. | из Container |
| static string | underscore(string $id) Преобразует строку в нижний регистр с разделителями подчеркивания. | из Container |
| setResourceTracking(bool $track) Устанавливает флаг отслеживания ресурсов. | ||
| bool | isTrackingResources() Проверяет, отслеживаются ли ресурсы. | |
| setProxyInstantiator(InstantiatorInterface $proxyInstantiator) Устанавливает инициатор, используемый при получении прокси. | ||
| registerExtension(ExtensionInterface $extension) | ||
| ExtensionInterface | getExtension(string $name) Возвращает расширение по псевдониму или имени пространства имён. | |
| ExtensionInterface[] | getExtensions() Возвращает все зарегистрированные расширения. | |
| bool | hasExtension(string $name) Проверяет, есть ли расширение. | |
| ResourceInterface[] | getResources() Возвращает массив загруженных ресурсов для построения этой конфигурации. | |
| $this | addResource(ResourceInterface $resource) | |
| $this | setResources(array $resources) Устанавливает ресурсы для этой конфигурации. | |
| $this | addObjectResource(object $object) Добавляет иерархию классов объектов в качестве ресурсов. | |
| $this | addClassResource(ReflectionClass $class) Добавляет заданную иерархию классов в качестве ресурсов. | |
| $this | loadFromExtension(string $extension, array $values = array()) Загружает конфигурацию для расширения. | |
| $this | addCompilerPass(CompilerPassInterface $pass, string $type = PassConfig::TYPE_BEFORE_OPTIMIZATION) Добавляет компиляционный проход. | |
| PassConfig | getCompilerPassConfig() Возвращает конфигурацию компиляционного прохода, которую можно изменить. | |
| Compiler | getCompiler() Возвращает компилятор. | |
| array | getScopes($triggerDeprecationError = true) устарело Возвращает все области видимости. | |
| array | getScopeChildren($triggerDeprecationError = true) устарело Возвращает все дочерние области видимости. | |
| removeDefinition(string $id) Удаляет определение сервиса. | ||
| merge(ContainerBuilder $container) Объединяет ContainerBuilder с текущей конфигурацией ContainerBuilder. | ||
| array | getExtensionConfig(string $name) Возвращает массив конфигурации для данного расширения. | |
| prependExtensionConfig(string $name, array $config) Вставляет массив конфигурации в начало конфигураций данного расширения. | ||
| addAliases(array $aliases) Добавляет псевдонимы сервисов. | ||
| setAliases(array $aliases) Устанавливает псевдонимы сервисов. | ||
| setAlias(string $alias, string|Alias $id) Устанавливает псевдоним для существующего сервиса. | ||
| removeAlias(string $alias) Удаляет псевдоним. | ||
| bool | hasAlias(string $id) Возвращает true, если псевдоним существует под данным идентификатором. | |
| Alias[] | getAliases() Получает все определённые псевдонимы. | |
| Alias | getAlias(string $id) Получает псевдоним. |
| Определение | register($id, $class = null) Регистрирует определение сервиса. | |
| addDefinitions(array $definitions) Добавляет определения сервисов. | ||
| setDefinitions(array $definitions) Устанавливает определения сервисов. | ||
| Определение[] | getDefinitions() Получает все определения сервисов. | |
| Определение | setDefinition(string $id, Определение $definition) Устанавливает определение сервиса. | |
| bool | hasDefinition(string $id) Возвращает true, если определение сервиса существует по заданному идентификатору. | |
| Определение | getDefinition(string $id) Получает определение сервиса. | |
| Определение | findDefinition(string $id) Получает определение сервиса по идентификатору или псевдониму. | |
| object | createService(Определение $definition, string $id, bool $tryProxy = true) Создаёт сервис для определения сервиса. | |
| mixed | resolveServices(mixed $value) Заменяет ссылки на сервисы реальными экземплярами сервиса и вычисляет выражения. | |
| array | findTaggedServiceIds(string $name) Возвращает идентификаторы сервисов для заданного тега. | |
| array | findTags() Возвращает все теги, используемые определёнными сервисами. | |
| string[] | findUnusedTags() Возвращает все теги, не запрошенные методом findTaggedServiceIds. | |
| addExpressionLanguageProvider(Интерфейс поставщика функций языка выражений $provider) | ||
| Интерфейс поставщика функций языка выражений[] | getExpressionLanguageProviders() | |
| static array | getServiceConditionals(mixed $value) Возвращает условные обозначения сервиса. |
Подробности
__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)
Устанавливает службу.
Примечание: параметр $scope устарел с версии 2.8 и будет удален в 3.0.
Параметры
| string | $id | Идентификатор службы |
| object | $service | Экземпляр службы |
| string | $scope | Область действия службы |
Исключения
| BadMethodCallException | Когда этот ContainerBuilder заморожен |
bool has(string $id)
Возвращает true, если данная служба определена.
Параметры
| string | $id | Идентификатор службы |
Значение результата
| bool | true, если служба определена, иначе false |
object get(string $id, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE)
Получает службу.
Параметры
| string | $id | Идентификатор службы |
| int | $invalidBehavior | Поведение при отсутствии службы |
Значение результата
| object | Соответствующая служба |
Исключения
| InvalidArgumentException | когда определения недоступны |
| ServiceCircularReferenceException | При обнаружении циклической ссылки |
| ServiceNotFoundException | Когда служба не определена |
| Исключение |
См. также
| Ссылка |
bool initialized(string $id)
Возвращает true, если данная служба была фактически инициализирована.
Параметры
| string | $id |
Значение результата
| bool | true, если служба была инициализирована, иначе false |
reset()
Сбрасывает общие службы из контейнера.
Не следует использовать контейнер повторно после сброса в нормальном рабочем процессе. Этот метод предназначен для освобождения ссылок для подсчета ссылок. Последующий вызов ContainerInterface::get создаст новый экземпляр общей службы.
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 | Строка в нижнем регистре с символом подчеркивания |
setResourceTracking(bool $track)
Устанавливает флаг отслеживания ресурсов.
Если вы не используете загрузчики и, следовательно, не хотите зависеть от компонента Config, установите этот флаг в значение false.
Параметры
| bool | $track | true, если вы хотите отслеживать ресурсы, иначе false |
bool isTrackingResources()
Проверяет, отслеживаются ли ресурсы.
Значение возврата
| bool | true, если ресурсы отслеживаются, иначе false |
setProxyInstantiator(InstantiatorInterface $proxyInstantiator)
Устанавливает инстанциатор, который будет использоваться при получении прокси.
Параметры
| InstantiatorInterface | $proxyInstantiator |
registerExtension(ExtensionInterface $extension)
Параметры
| ExtensionInterface | $extension |
ExtensionInterface getExtension(string $name)
Возвращает расширение по псевдониму или имени пространства имён.
Параметры
| string | $name | Псевдоним или имя пространства имён |
Значение возврата
| ExtensionInterface | Экземпляр расширения |
Исключения
| LogicException | если расширение не зарегистрировано |
ExtensionInterface[] getExtensions()
Возвращает все зарегистрированные расширения.
Значение возврата
| ExtensionInterface[] | Массив ExtensionInterface |
bool hasExtension(string $name)
Проверяет, есть ли расширение.
Параметры
| string | $name | Имя расширения |
Значение возврата
| bool | Существует ли расширение |
ResourceInterface[] getResources()
Возвращает массив загруженных ресурсов для построения этой конфигурации.
Значение возврата
| ResourceInterface[] | Массив ресурсов |
$this addResource(ResourceInterface $resource)
Параметры
| ResourceInterface | $resource |
Значение возврата
| $this |
$this setResources(array $resources)
Устанавливает ресурсы для этой конфигурации.
Параметры
| array | $resources | Массив ресурсов |
Значение возврата
| $this |
$this addObjectResource(object $object)
Добавляет иерархию классов объекта как ресурсы.
Параметры
| object | $object | Экземпляр объекта |
Значение возврата
| $this |
$this addClassResource(ReflectionClass $class)
Добавляет заданную иерархию классов как ресурсы.
Параметры
| ReflectionClass | $class |
Значение возврата
| $this |
$this loadFromExtension(string $extension, array $values = array())
Загружает конфигурацию для расширения.
Параметры
| string | $extension | Псевдоним или имя пространства имён расширения |
| array | $values | Массив значений, настраивающих расширение |
Значение возврата
| $this |
Исключения
| BadMethodCallException | Когда этот ContainerBuilder заморожен |
| LogicException | если контейнер заморожен |
$this addCompilerPass(CompilerPassInterface $pass, string $type = PassConfig::TYPE_BEFORE_OPTIMIZATION)
Добавляет компиляторный этап.
Параметры
| CompilerPassInterface | $pass | Компиляторный этап |
| string | $type | Тип компиляторного этапа |
Значение возврата
| $this |
PassConfig getCompilerPassConfig()
Возвращает конфигурацию компиляторных этапов, которую можно изменить.
Значение возврата
| PassConfig | Конфигурация компиляторных этапов |
Compiler getCompiler()
Возвращает компилятор.
Значение возврата
| Compiler | Компилятор |
array getScopes($triggerDeprecationError = true) deprecated
deprecated
Возвращает все области.
Параметры
| $triggerDeprecationError |
Значение возврата
| array | Массив областей |
array getScopeChildren($triggerDeprecationError = true) deprecated
deprecated
Возвращает все дочерние области.
Параметры
| $triggerDeprecationError |
Значение возврата
| array | Массив дочерних областей |
removeDefinition(string $id)
Удаляет определение сервиса.
Параметры
| string | $id | Идентификатор сервиса |
merge(ContainerBuilder $container)
Объединяет ContainerBuilder с текущей конфигурацией ContainerBuilder.
Определения сервисов перезаписывают текущие.
Но параметры перезаписываются текущими. Это позволяет параметрам, переданным в конструктор контейнера, иметь приоритет над загруженными.
$container = new ContainerBuilder(array('foo' => 'bar')); $loader = new LoaderXXX($container); $loader->load('resource_name'); $container->register('foo', new stdClass());
В приведенном выше примере, даже если загруженный ресурс определяет параметр foo, значение все равно будет 'bar', как определено в конструкторе ContainerBuilder.
Параметры
| ContainerBuilder | $container |
Исключения
| BadMethodCallException | Когда этот ContainerBuilder заморожен |
array getExtensionConfig(string $name)
Возвращает массив конфигурации для данного расширения.
Параметры
| string | $name | Имя расширения |
Результат
| array | Массив конфигурации |
prependExtensionConfig(string $name, array $config)
Добавляет массив конфигурации в начало конфигурации заданного расширения.
Параметры
| string | $name | Имя расширения |
| array | $config | Конфигурация для установки |
addAliases(array $aliases)
Добавляет псевдонимы сервисов.
Параметры
| array | $aliases |
setAliases(array $aliases)
Устанавливает псевдонимы сервисов.
Параметры
| array | $aliases |
setAlias(string $alias, string|Псевдоним $id)
Устанавливает псевдоним для существующего сервиса.
Параметры
| string | $alias | Псевдоним для создания |
| string|Псевдоним | $id | Сервис для присвоения псевдонима |
Исключения
| Исключение некорректного аргумента | если id не является строкой или псевдонимом |
| Исключение некорректного аргумента | если псевдоним относится к самому себе |
removeAlias(string $alias)
Удаляет псевдоним.
Параметры
| string | $alias | Псевдоним для удаления |
bool hasAlias(string $id)
Возвращает true, если псевдоним существует по данному идентификатору.
Параметры
| string | $id | Идентификатор сервиса |
Результат
| bool | true, если псевдоним существует, иначе false |
Псевдоним[] getAliases()
Получает все определённые псевдонимы.
Результат
| Псевдоним[] | Массив псевдонимов |
Псевдоним getAlias(string $id)
Получает псевдоним.
Параметры
| string | $id | Идентификатор сервиса |
Результат
| Псевдоним | Экземпляр Alias |
Исключения
| Исключение некорректного аргумента | если псевдоним не существует |
Определение register($id, $class = null)
Регистрирует определение сервиса.
Этот метод позволяет просто зарегистрировать определение сервиса с гибким интерфейсом.
Параметры
| $id | ||
| $class |
Результат
| Определение | Экземпляр Definition |
addDefinitions(array $definitions)
Добавляет определения сервисов.
Параметры
| array | $definitions | Массив определений сервисов |
setDefinitions(array $definitions)
Устанавливает определения сервисов.
Параметры
| array | $definitions | Массив определений сервисов |
Определение[] getDefinitions()
Получает все определения сервисов.
Результат
| Определение[] | Массив экземпляров Definition |
Определение setDefinition(string $id, Определение $definition)
Устанавливает определение сервиса.
Параметры
| string | $id | Идентификатор сервиса |
| Определение | $definition | Экземпляр Definition |
Результат
| Определение | определение сервиса |
Исключения
| Исключение вызова недоступного метода | Если этот ContainerBuilder заморожен |
bool hasDefinition(string $id)
Возвращает true, если определение сервиса существует по данному идентификатору.
Параметры
| string | $id | Идентификатор сервиса |
Результат
| bool | true, если определение сервиса существует, иначе false |
Определение getDefinition(string $id)
Получает определение сервиса.
Параметры
| string | $id | Идентификатор сервиса |
Результат
| Определение | Экземпляр Definition |
Исключения
| Исключение не найденного сервиса | если определение сервиса не существует |
Определение findDefinition(string $id)
Получает определение сервиса по id или псевдониму.
Метод рекурсивно "разрешает" псевдонимы, чтобы вернуть экземпляр Definition.
Параметры
| string | $id | Идентификатор сервиса или псевдоним |
Результат
| Определение | Экземпляр Definition |
Исключения
| Исключение не найденного сервиса | если определение сервиса не существует |
object createService(Определение $definition, string $id, bool $tryProxy = true)
Создаёт сервис для определения сервиса.
Параметры
| Определение | $definition | Экземпляр определения сервиса |
| string | $id | Идентификатор сервиса |
| bool | $tryProxy | Нужно ли попробовать проксировать сервис с ленивым прокси |
Результат
| object | Сервис, описанный в определении сервиса |
Исключения
| Исключение времени выполнения | Когда область не активна |
| Исключение времени выполнения | Когда определение фабрики неполное |
| Исключение времени выполнения | Когда сервис является синтетическим сервисом |
| Исключение некорректного аргумента | Когда вызываемая функция конфигурации не является вызываемой |
mixed resolveServices(mixed $value)
Заменяет ссылки на сервисы реальными экземплярами сервисов и вычисляет выражения.
Параметры
| mixed | $value | Значение |
Результат
| mixed | То же значение, с заменой всех ссылок на сервисы реальными экземплярами сервисов и вычислением всех выражений |
array findTaggedServiceIds(string $name)
Возвращает идентификаторы сервисов для данного тега.
Пример:
$container->register('foo')->addTag('my.tag', array('hello' => 'world'));
$serviceIds = $container->findTaggedServiceIds('my.tag'); foreach ($serviceIds as $serviceId => $tags) { foreach ($tags as $tag) { echo $tag['hello']; } }
Параметры
| string | $name | Имя тега |
Значение возвращаемого значения
| массив | Массив тегов |
array findTags()
Возвращает все теги, используемые определёнными сервисами.
Значение возвращаемого значения
| массив | Массив тегов |
string[] findUnusedTags()
Возвращает все теги, не запрошенные методом findTaggedServiceIds.
Значение возвращаемого значения
| массив строк | Массив тегов |
addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider)
Параметры
| ExpressionFunctionProviderInterface | $provider |
ExpressionFunctionProviderInterface[] getExpressionLanguageProviders()
Значение возвращаемого значения
| ExpressionFunctionProviderInterface[] |
static array getServiceConditionals(mixed $value)
Возвращает Условия сервиса.
Параметры
| mixed | $value | Массив условий для возврата |
Значение возвращаемого значения
| массив | Массив Условий сервиса |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/2.8/Symfony/Component/DependencyInjection/ContainerBuilder.html