Контейнер
класс Container реализует ArrayAccess, Container (Просмотр исходного кода)
Свойства
| static protected Container | $instance | Текущий глобально доступный контейнер (если есть). | |
| protected array | $resolved | Массив типов, которые были разрешены. | |
| protected array | $bindings | Связывания контейнера. | |
| protected array | $methodBindings | Методы связывания контейнера. | |
| protected array | $instances | Общие экземпляры контейнера. | |
| protected array | $aliases | Зарегистрированные псевдонимы типов. | |
| protected array | $abstractAliases | Зарегистрированные псевдонимы, индексированные по абстрактному имени. | |
| protected array | $extenders | Замыкания расширения для сервисов. | |
| protected array | $tags | Все зарегистрированные теги. | |
| protected array | $buildStack | Стек сущностей, которые в данный момент создаются. | |
| protected array | $with | Стек переопределения параметров. | |
| array | $contextual | Карта контекстных связываний. | |
| protected array | $reboundCallbacks | Все зарегистрированные обратные вызовы повторного связывания. | |
| protected array | $globalResolvingCallbacks | Все глобальные обратные вызовы разрешения. | |
| protected array | $globalAfterResolvingCallbacks | Все глобальные обратные вызовы после разрешения. | |
| protected array | $resolvingCallbacks | Все обратные вызовы разрешения по типу класса. | |
| protected array | $afterResolvingCallbacks | Все обратные вызовы после разрешения по типу класса. |
Методы
| ContextualBindingBuilder | when(string $concrete) Определить контекстуальную привязку. | |
| bool | bound(string $abstract) Определить, привязано ли данное абстрактное имя типа. | |
| has($id) {@inheritdoc} | ||
| bool | resolved(string $abstract) Определить, был ли разрешён данный абстрактный тип. | |
| bool | isShared(string $abstract) Определить, является ли данный тип общим. | |
| bool | isAlias(string $name) Определить, является ли данная строка псевдонимом. | |
| void | bind(string|array $abstract, Closure|string|null $concrete = null, bool $shared = false) Зарегистрировать привязку в контейнере. | |
| Closure | getClosure(string $abstract, string $concrete) Получить Closure для использования при построении типа. | |
| bool | hasMethodBinding(string $method) Определить, содержит ли контейнер привязку метода. | |
| void | bindMethod(string $method, Closure $callback) Привязать обратный вызов для разрешения с Container::call. | |
| 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|array $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) Назначить набор тегов заданной привязке. | |
| array | tagged(array $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) Получить обратные вызовы rebound для заданного типа. | |
| 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 = []) Разрешить заданный тип из контейнера. | |
| mixed | getConcrete(string $abstract) Получить конкретный тип для заданного абстрактного типа. | |
| string|null | getContextualConcrete(string $abstract) Получить контекстуальную конкретную привязку для заданного абстрактного типа. | |
| string|null | findInContextualBindings(string $abstract) Найти конкретную привязку для заданного абстрактного типа в массиве контекстуальных привязок. | |
| bool | isBuildable(mixed $concrete, string $abstract) Определить, является ли данный конкретный тип создаваемым. | |
| mixed | build(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) Разрешить зависимость, указанную как класс, из контейнера. | |
| void | notInstantiable(string $concrete) Выбросить исключение, что конкретный тип не может быть создан. |
| void | unresolvablePrimitive(ReflectionParameter $parameter) Выбросить исключение для неразрешимого примитива. | |
| void | resolving(string $abstract, Closure $callback = null) Зарегистрировать новый обратный вызов разрешения. | |
| void | afterResolving(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 | 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 $concrete)
Определить контекстуальную привязку.
bool bound(string $abstract)
Определить, была ли связана данная абстрактная сущность.
has($id)
{@inheritdoc}
bool resolved(string $abstract)
Определить, была ли разрешена данная абстрактная сущность.
bool isShared(string $abstract)
Определить, является ли данный тип общим.
bool isAlias(string $name)
Определить, является ли данная строка псевдонимом.
void bind(string|array $abstract, Closure|string|null $concrete = null, bool $shared = false)
Зарегистрировать привязку в контейнере.
protected Closure getClosure(string $abstract, string $concrete)
Получить замыкание, используемое при построении типа.
bool hasMethodBinding(string $method)
Определить, содержит ли контейнер привязку метода.
void bindMethod(string $method, Closure $callback)
Привязать обратный вызов для разрешения с помощью Container::call.
смешанный callMethodBinding(string $method, смешанный $instance)
Получить привязку метода для данного метода.
пустое addContextualBinding(string $concrete, string $abstract, Closure|string $implementation)
Добавить контекстную привязку в контейнер.
пустое bindIf(string $abstract, Closure|string|null $concrete = null, bool $shared = false)
Зарегистрировать привязку, если она еще не зарегистрирована.
пустое singleton(string|array $abstract, Closure|string|null $concrete = null)
Зарегистрировать общую привязку в контейнере.
пустое extend(string $abstract, Closure $closure)
«Расширить» абстрактный тип в контейнере.
смешанный instance(string $abstract, смешанный $instance)
Зарегистрировать существующий экземпляр как общий в контейнере.
protected пустое removeAbstractAlias(string $searched)
Удалить псевдоним из кэша псевдонимов контекстной привязки.
пустое tag(array|string $abstracts, array|mixed $tags)
Назначить набор тегов заданной привязке.
массив tagged(array $tag)
Разрешить все привязки для заданного тега.
пустое alias(string $abstract, string $alias)
Создать псевдоним типа с другим именем.
смешанный rebinding(string $abstract, Closure $callback)
Привязать новый обратный вызов к событию перепривязки абстрактного типа.
смешанный refresh(string $abstract, смешанный $target, string $method)
Обновить экземпляр в заданном целевом месте и методе.
protected пустое rebound(string $abstract)
Вызвать обратные вызовы «rebound» для заданного абстрактного типа.
protected массив getReboundCallbacks(string $abstract)
Получить обратные вызовы rebound для заданного типа.
Closure wrap(Closure $callback, array $parameters = [])
Обернуть заданный замыкание таким образом, чтобы его зависимости были внедрены при выполнении.
смешанный call(callable|string $callback, array $parameters = [], string|null $defaultMethod = null)
Вызвать заданный замыкание/класс@метод и внедрить его зависимости.
Closure factory(string $abstract)
Получить замыкание для разрешения заданного типа из контейнера.
смешанный makeWith(string $abstract, array $parameters = [])
Функция-псевдоним для make().
mixed make(string $abstract, array $parameters = [])
Разрешить заданный тип из контейнера.
get($id)
{@inheritdoc}
protected mixed resolve(string $abstract, array $parameters = [])
Разрешить заданный тип из контейнера.
protected mixed getConcrete(string $abstract)
Получить конкретный тип для заданного абстрактного.
protected string|null getContextualConcrete(string $abstract)
Получить контекстуальную конкретную привязку для заданного абстрактного.
protected string|null findInContextualBindings(string $abstract)
Найти конкретную привязку для заданного абстрактного в массиве контекстуальных привязок.
protected bool isBuildable(mixed $concrete, string $abstract)
Определить, является ли данный конкретный экземпляр создаваемым.
mixed build(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 void notInstantiable(string $concrete)
Выбросить исключение, что конкретный тип не может быть создан.
protected void unresolvablePrimitive(ReflectionParameter $parameter)
Выбросить исключение для неразрешимой примитивной зависимости.
void resolving(string $abstract, Closure $callback = null)
Зарегистрировать новый вызываемый объект для разрешения.
void afterResolving(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()
Установить глобально доступный экземпляр контейнера.
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/5.5/Illuminate/Container/Container.html