Spec-Zone.ru › Symfony 3.1

ContainerBuilder

class ContainerBuilder extends Container implements TaggedContainerInterface

ContainerBuilder — это контейнер DI, который предоставляет API для простого описания сервисов.

Методы

__construct(ParameterBagInterface $parameterBag = null) из Container
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)

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

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()

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

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()

Возвращает компилятор.

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)

Получает псевдоним.

Definition register(string $id, string $class = null)

Регистрирует определение сервиса.

addDefinitions(array $definitions)

Добавляет определения сервисов.

setDefinitions(array $definitions)

Устанавливает определения сервисов.

Definition[] getDefinitions()

Получает все определения сервисов.

Definition setDefinition(string $id, Definition $definition)

Устанавливает определение сервиса.

bool hasDefinition(string $id)

Возвращает true, если определение сервиса существует под данным идентификатором.

Definition getDefinition(string $id)

Получает определение сервиса.

Definition findDefinition(string $id)

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

mixed resolveServices(mixed $value)

Заменяет ссылки на сервисы реальными экземплярами сервисов и вычисляет выражения.

array findTaggedServiceIds(string $name)

Возвращает идентификаторы сервисов для данного тега.

array findTags()

Возвращает все теги, используемые определенными сервисами.

string[] findUnusedTags()

Возвращает все теги, не запрошенные методом findTaggedServiceIds.

addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider)
ExpressionFunctionProviderInterface[] getExpressionLanguageProviders()
static array getServiceConditionals(mixed $value)

Возвращает условия для сервисов.

Подробности

__construct(ParameterBagInterface $parameterBag = null)

Параметры

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

compile()

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

Этот метод передает контейнер в проходы компилятора, задача которых — манипулировать и оптимизировать контейнер.

Основные проходы компилятора выполняют примерно четыре действия:

  • Слияние конфигураций расширений;
  • Разрешение значений параметров;
  • Замораживание параметра bag;
  • Отключение загрузки расширений.

bool isFrozen()

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

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

bool true, если параметр bag контейнера заморожен, в противном случае — false

ParameterBagInterface getParameterBag()

Получает параметр bag контейнера служб.

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

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 $id Идентификатор службы
object $service Экземпляр службы

Исключения

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 Когда служба не определена
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 Преобразованная строка

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 Компилятор

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 Экземпляр ContainerBuilder для объединения

Исключения

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|Alias $id)

Устанавливает псевдоним для существующего сервиса.

Параметры

string $alias Псевдоним для создания
string|Alias $id Сервис для создания псевдонима

Исключения

InvalidArgumentException если id не является строкой или Alias
InvalidArgumentException если псевдоним относится к самому себе

removeAlias(string $alias)

Удаляет псевдоним.

Параметры

string $alias Псевдоним для удаления

bool hasAlias(string $id)

Возвращает true, если псевдоним существует по данному идентификатору.

Параметры

string $id Идентификатор сервиса

Возвращаемое значение

bool true, если псевдоним существует, иначе false

Alias[] getAliases()

Получает все определённые псевдонимы.

Возвращаемое значение

Alias[] Массив псевдонимов

Alias getAlias(string $id)

Получает псевдоним.

Параметры

string $id Идентификатор сервиса

Возвращаемое значение

Alias Экземпляр Alias

Исключения

InvalidArgumentException если псевдоним не существует

Definition register(string $id, string $class = null)

Регистрирует определение сервиса.

Этот метод позволяет для простого регистрации определения сервиса с интерфейсом "в стиле флюид".

Параметры

string $id Идентификатор сервиса
string $class Класс сервиса

Возвращаемое значение

Definition Экземпляр Definition

addDefinitions(array $definitions)

Добавляет определения сервисов.

Параметры

array $definitions Массив определений сервисов

setDefinitions(array $definitions)

Устанавливает определения сервисов.

Параметры

array $definitions Массив определений сервисов

Definition[] getDefinitions()

Получает все определения сервисов.

Возвращаемое значение

Definition[] Массив экземпляров Definition

Definition setDefinition(string $id, Definition $definition)

Устанавливает определение сервиса.

Параметры

string $id Идентификатор сервиса
Definition $definition Экземпляр Definition

Возвращаемое значение

Definition определение сервиса

Исключения

BadMethodCallException Если контейнер ContainerBuilder заморожен

bool hasDefinition(string $id)

Возвращает true, если определение сервиса существует под данным идентификатором.

Параметры

string $id Идентификатор сервиса

Возвращаемое значение

bool true, если определение сервиса существует, иначе false

Definition getDefinition(string $id)

Получает определение сервиса.

Параметры

string $id Идентификатор сервиса

Возвращаемое значение

Definition Экземпляр Definition

Исключения

ServiceNotFoundException если определение сервиса не найдено

Definition findDefinition(string $id)

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

Метод рекурсивно «разрешает» псевдонимы, чтобы вернуть экземпляр Definition.

Параметры

string $id Идентификатор сервиса или псевдоним

Возвращаемое значение

Definition Экземпляр Definition

Исключения

ServiceNotFoundException если определение сервиса не найдено

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 Массив тегов

array findTags()

Возвращает все теги, используемые определенными сервисами.

Возвращаемое значение

array Массив тегов

string[] findUnusedTags()

Возвращает все теги, не запрошенные с помощью findTaggedServiceIds.

Возвращаемое значение

string[] Массив тегов

addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider)

Параметры

ExpressionFunctionProviderInterface $provider

ExpressionFunctionProviderInterface[] getExpressionLanguageProviders()

Возвращаемое значение

ExpressionFunctionProviderInterface[]

static array getServiceConditionals(mixed $value)

Возвращает условные значения сервисов.

Параметры

mixed $value Массив условных значений для возврата

Возвращаемое значение

array Массив условных значений сервисов

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

Spec-Zone.ru

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