Spec-Zone.ru › Symfony 2.8

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) устарел

устарел

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

Значение результата

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

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

Возвращает все области.

Параметры

$triggerDeprecationError

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

array Массив областей

array getScopeChildren($triggerDeprecationError = true) deprecated

deprecated

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

Возвращает все дочерние области.

Параметры

$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

Spec-Zone.ru

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