Контейнер
класс Container реализует ArrayAccess, Container (Просмотреть исходный код)
Свойства
| статический защищённый Container | $instance | Текущий глобально доступный контейнер (если есть). | |
| защищённый bool[] | $resolved | Массив типов, которые были разрешены. | |
| защищённый array[] | $bindings | Связывания контейнера. | |
| защищённый Closure[] | $methodBindings | Метод связывания контейнера. | |
| защищённый object[] | $instances | Общие экземпляры контейнера. | |
| защищённый string[] | $aliases | Зарегистрированные псевдонимы типов. | |
| защищённый array[] | $abstractAliases | Зарегистрированные псевдонимы, индексированные по абстрактному имени. | |
| защищённый array[] | $extenders | Закрытия расширения для сервисов. | |
| защищённый array[] | $tags | Все зарегистрированные теги. | |
| защищённый array[] | $buildStack | Стек конкретизаций, которые в настоящее время строятся. | |
| защищённый array[] | $with | Стек переопределения параметров. | |
| array[] | $contextual | Карта контекстуального связывания. | |
| защищённый array[] | $reboundCallbacks | Все зарегистрированные обратные вызовы пересвязывания. | |
| защищённый Closure[] | $globalResolvingCallbacks | Все глобальные обратные вызовы разрешения. | |
| защищённый Closure[] | $globalAfterResolvingCallbacks | Все глобальные обратные вызовы после разрешения. | |
| защищённый array[] | $resolvingCallbacks | Все обратные вызовы разрешения по типу класса. | |
| защищённый array[] | $afterResolvingCallbacks | Все обратные вызовы после разрешения по типу класса. |
Методы
| ContextualBindingBuilder | when(string|array $concrete)
Определите контекстное связывание. | |
| bool | bound(string $abstract)
Определите, было ли связан абстрактный тип. | |
| has($id) {@inheritdoc} | ||
| bool | resolved(string $abstract)
Определите, был ли решен заданный абстрактный тип. | |
| bool | isShared(string $abstract)
Определите, является ли заданный тип общим. | |
| bool | isAlias(string $name)
Определите, является ли заданная строка псевдонимом. | |
| void | bind(string $abstract, Closure|string|null $concrete = null, bool $shared = false)
Зарегистрировать связывание в контейнере. | |
| Closure | getClosure(string $abstract, string $concrete)
Получить замыкание для использования при построении типа. | |
| bool | hasMethodBinding(string $method)
Определите, содержит ли контейнер привязку к методу. | |
| void | bindMethod(array|string $method, Closure $callback)
Привязать обратный вызов для разрешения с помощью Container::call. | |
| string | parseBindMethod(array|string $method)
Получить метод для привязки в формате class@method. | |
| mixed | callMethodBinding(string $method, mixed $instance)
Получить привязку к методу для данного метода. | |
| void | addContextualBinding(string $concrete, string $abstract, Closure|string $implementation)
Добавить контекстное связывание в контейнер. | |
| void | bindIf(string $abstract, Closure|string|null $concrete = null, bool $shared = false)
Зарегистрировать привязку, если она еще не зарегистрирована. | |
| void | singleton(string $abstract, Closure|string|null $concrete = null)
Зарегистрировать общую привязку в контейнере. | |
| void | singletonIf(string $abstract, Closure|string|null $concrete = null)
Зарегистрировать общую привязку, если она еще не зарегистрирована. | |
| void | extend(string $abstract, Closure $closure)
«Расширить» абстрактный тип в контейнере. | |
| mixed | instance(string $abstract, mixed $instance)
Зарегистрировать существующий экземпляр как общий в контейнере. | |
| void | removeAbstractAlias(string $searched)
Удалить псевдоним из кэша псевдонимов контекстного связывания. | |
| void | tag(array|string $abstracts, array|mixed $tags)
Назначить набор тегов заданному связыванию. | |
| iterable | tagged(string $tag)
Разрешить все привязки для заданного тега. | |
| void | alias(string $abstract, string $alias)
Создать псевдоним типа с другим именем. | |
| mixed | rebinding(string $abstract, Closure $callback)
Привязать новый обратный вызов к событию перепривязки абстракции. | |
| mixed | refresh(string $abstract, mixed $target, string $method)
Обновить экземпляр в указанной цели и методе. | |
| void | rebound(string $abstract)
Вызвать обратные вызовы «rebound» для данного типа абстракции. | |
| array | getReboundCallbacks(string $abstract)
Получить обратные вызовы для перепривязки заданного типа. | |
| Closure | wrap(Closure $callback, array $parameters = [])
Оборачивает заданное замыкание таким образом, что его зависимости будут внедрены при выполнении. | |
| mixed | call(callable|string $callback, array $parameters = [], string|null $defaultMethod = null)
Вызвать заданное замыкание/класс@метод и внедрить его зависимости. | |
| Closure | factory(string $abstract)
Получить замыкание для разрешения заданного типа из контейнера. | |
| mixed | makeWith(string $abstract, array $parameters = [])
Псевдоним функции make(). | |
| mixed | make(string $abstract, array $parameters = [])
Разрешить заданный тип из контейнера. | |
| get($id) {@inheritdoc} | ||
| mixed | resolve(string $abstract, array $parameters = [], bool $raiseEvents = true)
Разрешить заданный тип из контейнера. | |
| mixed | getConcrete(string $abstract)
Получить конкретный тип для заданной абстракции. | |
| Closure|string|array|null | getContextualConcrete(string $abstract)
Получить контекстную конкретную привязку для заданной абстракции. | |
| Closure|string|null | findInContextualBindings(string $abstract)
Найти конкретную привязку для данной абстракции в массиве контекстных привязок. | |
| bool | isBuildable(mixed $concrete, string $abstract)
Определить, можно ли построить заданный конкретный тип. | |
| mixed | build(Closure|string $concrete)
Создать экземпляр конкретного типа. | |
| array | resolveDependencies(array $dependencies)
Разрешить все зависимости из ReflectionParameters. | |
| bool | hasParameterOverride(ReflectionParameter $dependency)
Определить, имеет ли данная зависимость переопределение параметра. | |
| mixed | getParameterOverride(ReflectionParameter $dependency)
Получить переопределение параметра для зависимости. | |
| array | getLastParameterOverride()
Получить последнее переопределение параметра. |
| mixed | resolvePrimitive(ReflectionParameter $parameter)
Разрешить примитивную зависимость, не являющуюся классом. | |
| mixed | resolveClass(ReflectionParameter $parameter)
Разрешить зависимость, основанную на классе, из контейнера. | |
| mixed | resolveVariadicClass(ReflectionParameter $parameter)
Разрешить вариадическую зависимость, основанную на классе, из контейнера. | |
| void | notInstantiable(string $concrete)
Выбросить исключение, что конкретная реализация не может быть создана. | |
| void | unresolvablePrimitive(ReflectionParameter $parameter)
Выбросить исключение для неразрешимого примитива. | |
| void | resolving(Closure|string $abstract, Closure $callback = null)
Зарегистрировать новый обратный вызов разрешения. | |
| void | afterResolving(Closure|string $abstract, Closure $callback = null)
Зарегистрировать новый обратный вызов после разрешения для всех типов. | |
| void | fireResolvingCallbacks(string $abstract, mixed $object)
Вызвать все обратные вызовы разрешения. | |
| void | fireAfterResolvingCallbacks(string $abstract, mixed $object)
Вызвать все обратные вызовы после разрешения. | |
| array | getCallbacksForType(string $abstract, object $object, array $callbacksPerType)
Получить все обратные вызовы для заданного типа. | |
| void | fireCallbackArray(mixed $object, array $callbacks)
Вызвать массив обратных вызовов с объектом. | |
| array | getBindings()
Получить связи контейнера. | |
| string | getAlias(string $abstract)
Получить псевдоним для абстрактного типа, если он доступен. | |
| array | getExtenders(string $abstract)
Получить обратные вызовы расширения для заданного типа. | |
| void | forgetExtenders(string $abstract)
Удалить все обратные вызовы расширения для заданного типа. | |
| void | dropStaleInstances(string $abstract)
Удалить все устаревшие экземпляры и псевдонимы. | |
| void | forgetInstance(string $abstract)
Удалить разрешённый экземпляр из кэша экземпляров. | |
| void | forgetInstances()
Очистить все экземпляры из контейнера. | |
| void | flush()
Очистить контейнер от всех связей и разрешённых экземпляров. | |
| static Container | getInstance()
Получить глобально доступный экземпляр контейнера. | |
| static Container|Container | setInstance(Container $container = null)
Установить общий экземпляр контейнера. | |
| bool | offsetExists(string $key)
Определить, существует ли заданный индекс. | |
| mixed | offsetGet(string $key)
Получить значение по заданному индексу. | |
| void | offsetSet(string $key, mixed $value)
Установить значение по заданному индексу. | |
| void | offsetUnset(string $key)
Удалить значение по заданному индексу. | |
| mixed | __get(string $key)
Динамический доступ к сервисам контейнера. | |
| void | __set(string $key, mixed $value)
Динамическое задание сервисов контейнера. |
Details
ContextualBindingBuilder when(string|array $concrete)
Определить контекстную связь.
bool bound(string $abstract)
Определить, была ли связана заданная абстрактная сущность.
has($id)
{@inheritdoc}
bool resolved(string $abstract)
Определить, была ли разрешена заданная абстрактная сущность.
bool isShared(string $abstract)
Определить, является ли заданный тип общим.
bool isAlias(string $name)
Определить, является ли заданная строка псевдонимом.
void bind(string $abstract, Closure|string|null $concrete = null, bool $shared = false)
Зарегистрировать связь в контейнере.
protected Closure getClosure(string $abstract, string $concrete)
Получить замыкание, используемое при создании типа.
bool hasMethodBinding(string $method)
Определить, содержит ли контейнер привязку к методу.
void bindMethod(array|string $method, Closure $callback)
Привязать обратный вызов для обработки с Container::call.
protected string parseBindMethod(array|string $method)
Получить метод для привязки в формате class@method.
mixed callMethodBinding(string $method, mixed $instance)
Получить привязку к методу для заданного метода.
void addContextualBinding(string $concrete, string $abstract, Closure|string $implementation)
Добавить контекстуальную привязку в контейнер.
void bindIf(string $abstract, Closure|string|null $concrete = null, bool $shared = false)
Зарегистрировать привязку, если она еще не зарегистрирована.
void singleton(string $abstract, Closure|string|null $concrete = null)
Зарегистрировать общую привязку в контейнере.
void singletonIf(string $abstract, Closure|string|null $concrete = null)
Зарегистрировать общую привязку, если она еще не зарегистрирована.
void extend(string $abstract, Closure $closure)
«Расширить» абстрактный тип в контейнере.
mixed instance(string $abstract, mixed $instance)
Зарегистрировать существующий экземпляр как общий в контейнере.
protected void removeAbstractAlias(string $searched)
Удалить псевдоним из кэша псевдонимов контекстуальной привязки.
void tag(array|string $abstracts, array|mixed $tags)
Назначить набор тегов заданной привязке.
iterable tagged(string $tag)
Разрешить все привязки для заданного тега.
void alias(string $abstract, string $alias)
Создать псевдоним типа с другим именем.
mixed rebinding(string $abstract, Closure $callback)
Привязать новый обратный вызов к событию перепривязки абстрактного типа.
mixed refresh(string $abstract, mixed $target, string $method)
Обновить экземпляр для данного целевого объекта и метода.
protected void rebound(string $abstract)
Вызвать обратные вызовы "rebound" для заданного типа абстракции.
protected array getReboundCallbacks(string $abstract)
Получить обратные вызовы для заданного типа.
Closure wrap(Closure $callback, array $parameters = [])
Оборачивание заданного замыкания таким образом, что его зависимости будут введены при выполнении.
mixed call(callable|string $callback, array $parameters = [], string|null $defaultMethod = null)
Вызов заданного замыкания / класса@метода и ввод его зависимостей.
Closure factory(string $abstract)
Получить замыкание для разрешения заданного типа из контейнера.
mixed makeWith(string $abstract, array $parameters = [])
Функциональное имя-псевдоним для make().
mixed make(string $abstract, array $parameters = [])
Разрешить заданный тип из контейнера.
get($id)
{@inheritdoc}
protected mixed resolve(string $abstract, array $parameters = [], bool $raiseEvents = true)
Разрешить заданный тип из контейнера.
protected mixed getConcrete(string $abstract)
Получить конкретный тип для заданной абстракции.
protected Closure|string|array|null getContextualConcrete(string $abstract)
Получить контекстуальную конкретную привязку для заданной абстракции.
protected Closure|string|null findInContextualBindings(string $abstract)
Найти конкретную привязку для заданной абстракции в массиве контекстуальных привязок.
protected bool isBuildable(mixed $concrete, string $abstract)
Определить, является ли заданный конкретный тип создаваемым.
mixed build(Closure|string $concrete)
Инициализация конкретного экземпляра заданного типа.
protected array resolveDependencies(array $dependencies)
Разрешить все зависимости из ReflectionParameters.
protected bool hasParameterOverride(ReflectionParameter $dependency)
Определить, имеет ли заданная зависимость переопределение параметра.
protected mixed getParameterOverride(ReflectionParameter $dependency)
Получить переопределение параметра для зависимости.
protected array getLastParameterOverride()
Получить последнее переопределение параметра.
protected mixed resolvePrimitive(ReflectionParameter $parameter)
Разрешить примитивную зависимость, не являющуюся классом.
protected mixed resolveClass(ReflectionParameter $parameter)
Разрешить зависимость, базирующуюся на классе, из контейнера.
protected mixed resolveVariadicClass(ReflectionParameter $parameter)
Разрешить зависимость, базирующуюся на классе, из контейнера (вариант с переменным числом аргументов).
protected void notInstantiable(string $concrete)
Выбросить исключение, что конкретная сущность не может быть создана.
protected void unresolvablePrimitive(ReflectionParameter $parameter)
Выбросить исключение для неразрешимого примитива.
void resolving(Closure|string $abstract, Closure $callback = null)
Зарегистрировать новый обратный вызов разрешения.
void afterResolving(Closure|string $abstract, Closure $callback = null)
Зарегистрировать новый обратный вызов после разрешения для всех типов.
protected void fireResolvingCallbacks(string $abstract, mixed $object)
Выполнить все обратные вызовы разрешения.
protected void fireAfterResolvingCallbacks(string $abstract, mixed $object)
Выполнить все обратные вызовы после разрешения.
protected array getCallbacksForType(string $abstract, object $object, array $callbacksPerType)
Получить все обратные вызовы для данного типа.
protected void fireCallbackArray(mixed $object, array $callbacks)
Выполнить массив обратных вызовов с объектом.
array getBindings()
Получить привязки контейнера.
string getAlias(string $abstract)
Получить псевдоним для абстракции, если он доступен.
protected array getExtenders(string $abstract)
Получить обратные вызовы расширения для данного типа.
void forgetExtenders(string $abstract)
Удалить все обратные вызовы расширения для данного типа.
protected void dropStaleInstances(string $abstract)
Удалить все устаревшие экземпляры и псевдонимы.
void forgetInstance(string $abstract)
Удалить разрешенный экземпляр из кэша экземпляров.
void forgetInstances()
Очистить все экземпляры из контейнера.
void flush()
Очистить контейнер от всех связей и разрешенных экземпляров.
static Container getInstance()
Получить глобально доступный экземпляр контейнера.
static Container|Container setInstance(Container $container = null)
Установить общий экземпляр контейнера.
bool offsetExists(string $key)
Определить, существует ли заданный индекс.
mixed offsetGet(string $key)
Получить значение по заданному индексу.
void offsetSet(string $key, mixed $value)
Установить значение по заданному индексу.
void offsetUnset(string $key)
Удалить значение по заданному индексу.
mixed __get(string $key)
Динамический доступ к службам контейнера.
void __set(string $key, mixed $value)
Динамическое задание служб контейнера.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/7.x/Illuminate/Container/Container.html