Spec-Zone.ru › Symfony 4.1

ContainerBuilder

class ContainerBuilder extends Container implements TaggedContainerInterface

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

Свойства

protected $parameterBag from Container
protected $services from Container
protected $fileMap from Container
protected $methodMap from Container
protected $factories from Container
protected $aliases from Container
protected $loading from Container
protected $resolving from Container
protected $syntheticIds from Container

Методы

__construct(ParameterBagInterface $parameterBag = null)
compile(bool $resolveEnvPlaceholders = false)

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

bool isCompiled()

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

from Container
ParameterBagInterface getParameterBag()

Возвращает пакет параметров контейнера сервисов.

from Container
mixed getParameter(string $name)

Возвращает параметр.

from Container
bool hasParameter(string $name)

Проверяет существование параметра.

from Container
setParameter(string $name, mixed $value)

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

from 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, если сервис с данным идентификатором был инициализирован.

from Container
reset()

Сбрасывает общие сервисы из контейнера.

from Container
array getServiceIds()

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

array getRemovedIds()

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

static string camelize(string $id)

Приводит строку к верблюжьей нотации.

from Container
static string underscore(string $id)

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

from Container
object load($file)

Создает сервис, загрузив его файл-фабрику.

from Container
mixed getEnv(string $name)

Получает переменную из окружения.

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|string $object)

Добавляет иерархию классов объекта в качестве ресурсов.

ReflectionClass|null getReflectionClass(string|null $class, bool $throw = true)

Возвращает запрашиваемый класс ReflectionClass и регистрирует его для отслеживания ресурсов.

bool fileExists(string $path, bool|string $trackContents = true)

Проверяет существование запрошенного файла или каталога и регистрирует результат для отслеживания ресурсов.

$this loadFromExtension(string $extension, array $values = null)

Загружает конфигурацию для расширения.

$this addCompilerPass(CompilerPassInterface $pass, string $type = PassConfig::TYPE_BEFORE_OPTIMIZATION, int $priority = 0)

Добавляет компиляционный проход.

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)

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

Alias setAlias(string $alias, string|Alias $id)

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

removeAlias(string $alias)

Удаляет алиас.

bool hasAlias(string $id)

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

Alias[] getAliases()

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

Alias getAlias(string $id)

Получает алиас.

Definition register($id, $class = null)

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

Definition autowire(string $id, string|null $class = null)

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

addDefinitions(array $definitions)

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

setDefinitions(array $definitions)

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

Definition[] getDefinitions()

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

Definition setDefinition(string $id, Definition $definition)

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

bool hasDefinition(string $id)

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

Определение getDefinition(string $id)

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

Определение findDefinition(string $id)

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

mixed resolveServices(mixed $value)

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

array findTaggedServiceIds(string $name, bool $throwOnAbstract = false)

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

array findTags()

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

string[] findUnusedTags()

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

addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider)
ExpressionFunctionProviderInterface[] getExpressionLanguageProviders()
ChildDefinition registerForAutoconfiguration(string $interface)

Возвращает ChildDefinition, который будет использован для автоконфигурирования интерфейса/класса.

ChildDefinition[] getAutoconfiguredInstanceof()

Возвращает массив ChildDefinition[], индексированный по интерфейсу.

mixed resolveEnvPlaceholders(mixed $value, string|true|null $format = null, array $usedEnvs = null)

Разрешает заглушки параметров среды в строке или массиве.

int[] getEnvCounters()

Получить статистику по использованию среды.

log(CompilerPassInterface $pass, string $message)
static array getServiceConditionals(mixed $value)

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

static array getInitializedConditionals(mixed $value)

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

static string hash(mixed $value)

Вычисляет достаточно уникальный хеш значения.

Подробности

__construct(ParameterBagInterface $parameterBag = null)

Параметры

ParameterBagInterface $parameterBag

compile(bool $resolveEnvPlaceholders = false)

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

Этот метод передает контейнер в компиляционные шаги, которые предназначены для манипулирования и оптимизации контейнера.

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

  • Конфигурации расширений объединяются;
  • Значения параметров разрешаются;
  • Множество параметров замораживается;
  • Загрузка расширения отключается.

Параметры

bool $resolveEnvPlaceholders Является ли необходимое разрешение %env()% параметров с использованием текущих переменных среды или заменяется уникальными идентифицируемыми плейсхолдерами. Установите в "true", если хотите использовать текущий ContainerBuilder напрямую, сохраните в "false", когда контейнер вместо этого выводится.

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)

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

Параметры

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 Массив всех определенных идентификаторов сервисов

array getRemovedIds()

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

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

array

static string camelize(string $id)

Преобразует строку в стиль camelCase.

Параметры

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 Если переменная среды не найдена и не имеет значения по умолчанию

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|string $object)

Добавляет иерархию классов объекта в качестве ресурсов.

Параметры

object|string $object Экземпляр объекта или имя класса

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

$this

ReflectionClass|null getReflectionClass(string|null $class, bool $throw = true)

Возвращает запрашиваемый класс Reflection и регистрирует его для отслеживания ресурсов.

Параметры

string|null $class
bool $throw

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

ReflectionClass|null

Исключения

ReflectionException при отсутствии родительского класса/интерфейса/трейта и $throw = true

bool fileExists(string $path, bool|string $trackContents = true)

Проверяет существование запрошенного файла или директории и регистрирует результат для отслеживания ресурсов.

Параметры

string $path Путь к файлу или директории для проверки существования
bool|string $trackContents Следует ли отслеживать содержимое данного ресурса. Если передается строка, она будет использоваться как шаблон для отслеживания содержимого запрошенной директории

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

bool

$this loadFromExtension(string $extension, array $values = null)

Загружает конфигурацию для расширения.

Параметры

string $extension Псевдоним или имя пространства имён расширения
array $values Массив значений, настраивающих расширение

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

$this

Исключения

BadMethodCallException Когда этот ContainerBuilder скомпилирован
LogicException если расширение не зарегистрировано

$this addCompilerPass(CompilerPassInterface $pass, string $type = PassConfig::TYPE_BEFORE_OPTIMIZATION, int $priority = 0)

Добавляет проход компилятора.

Параметры

CompilerPassInterface $pass Проход компилятора
string $type Тип прохода компилятора
int $priority Используется для сортировки проходов

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

$this

PassConfig getCompilerPassConfig()

Возвращает конфигурацию прохода компилятора, которую можно изменить.

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

PassConfig Конфигурация прохода компилятора

Compiler getCompiler()

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

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

Compiler Компилятор

removeDefinition(string $id)

Удаляет определение службы.

Параметры

string $id Идентификатор службы

merge(ContainerBuilder $container)

Объединяет ContainerBuilder с текущей конфигурацией ContainerBuilder.

Определения служб перезаписывают текущие определённые.

Но для параметров они перезаписываются текущими. Это позволяет параметрам, переданным в конструктор контейнера, иметь приоритет над загруженными.

$container = new ContainerBuilder(new ParameterBag(array('foo' => 'bar')));
$loader = new LoaderXXX($container);
$loader->load('resource_name');
$container->register('foo', '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

Alias setAlias(string $alias, string|Alias $id)

Устанавливает псевдоним для существующей службы.

Параметры

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

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

Alias

Исключения

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($id, $class = null)

Регистрирует определение службы.

Этот метод позволяет просто зарегистрировать определение службы с интерфейсом «через метод».

Параметры

$id
$class

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

Definition Экземпляр Definition

Definition autowire(string $id, string|null $class = null)

Регистрирует определение автоподключаемой службы.

Этот метод реализует ярлык для использования setDefinition() с определением автоподключения.

Параметры

string $id Идентификатор службы
string|null $class Класс службы

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

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 Определение службы

Исключения

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, bool $throwOnAbstract = false)

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

Пример:

$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 Имя тега
bool $throwOnAbstract

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

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

array findTags()

Возвращает все теги, которые используют определённые службы.

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

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

string[] findUnusedTags()

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

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

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

addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider)

Параметры

ExpressionFunctionProviderInterface $provider

ExpressionFunctionProviderInterface[] getExpressionLanguageProviders()

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

ExpressionFunctionProviderInterface[]

ChildDefinition registerForAutoconfiguration(string $interface)

Возвращает ChildDefinition, который будет использоваться для автоконфигурирования интерфейса/класса.

Параметры

string $interface Класс или интерфейс для соответствия

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

ChildDefinition

ChildDefinition[] getAutoconfiguredInstanceof()

Возвращает массив ChildDefinition[], индексированный по интерфейсу.

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

ChildDefinition[]

mixed resolveEnvPlaceholders(mixed $value, string|true|null $format = null, array $usedEnvs = null)

Разрешает заглушки параметров env в строке или массиве.

Параметры

смешанный тип $value Значение для разрешения
строка|true|null $format Формат sprintf(), возвращающий замену для каждого имени переменной среды или null, чтобы разрешить обратно к исходному формату "%env(VAR)%" или true, чтобы разрешить к фактическим значениям ссылаемых переменных среды
массив $usedEnvs &$usedEnvs Переменные среды, найденные при разрешении, добавляются в этот массив

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

смешанный тип Значение с разрешенными параметрами среды, если передана строка или массив

int[] getEnvCounters()

Получить статистику использования переменных среды.

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

int[] Количество раз, когда каждая переменная среды была разрешена

log(CompilerPassInterface $pass, string $message)

Параметры

CompilerPassInterface $pass
строка $message

static array getServiceConditionals(mixed $value)

Возвращает Условия Службы.

Параметры

смешанный тип $value Массив условий, которые нужно вернуть

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

массив Массив условий Службы

static array getInitializedConditionals(mixed $value)

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

Параметры

смешанный тип $value Массив условий, которые нужно вернуть

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

массив Массив неинициализированных условий

static string hash(mixed $value)

Вычисляет достаточно уникальный хеш значения.

Параметры

смешанный тип $value Сериализуемое значение

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

строка

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

Spec-Zone.ru

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