Spec-Zone.ru › Phalcon 3

Класс Phalcon\Di

реализует Phalcon\DiInterface, ArrayAccess

Исходный код на GitHub

Phalcon\Di — компонент, реализующий инъекцию зависимостей/локацию служб для сервисов и сам является контейнером для них.

Поскольку Phalcon сильно декомпозирован, Phalcon\Di необходим для интеграции различных компонентов фреймворка. Разработчик также может использовать этот компонент для инъекции зависимостей и управления глобальными экземплярами различных классов, используемых в приложении.

В основе этого компонента лежит паттерн обращения управления. При его применении объекты не получают свои зависимости с помощью методов-сеттеров или конструкторов, а запрашивают у инжектора зависимостей. Это снижает общую сложность, поскольку существует только один способ получения необходимых зависимостей внутри компонента.

Кроме того, этот паттерн повышает возможность тестирования кода, делая его менее подверженным ошибкам.

use Phalcon\Di;
use Phalcon\Http\Request;

$di = new Di();

// Using a string definition
$di->set("request", Request::class, true);

// Using an anonymous function
$di->setShared(
    "request",
    function () {
        return new Request();
    }
);

$request = $di->getRequest();

Методы

public __construct ()

Конструктор Phalcon\Di

public setInternalEventsManager (Phalcon\Events\ManagerInterface $eventsManager)

Устанавливает внутренний менеджер событий

public getInternalEventsManager ()

Возвращает внутренний менеджер событий

public set (mixed $name, mixed $definition, [mixed $shared])

Регистрирует сервис в контейнере сервисов

public setShared (mixed $name, mixed $definition)

Регистрирует «всегда общий» сервис в контейнере сервисов

public remove (mixed $name)

Удаляет сервис из контейнера сервисов. Также удаляет любой общий экземпляр, созданный для сервиса

public attempt (mixed $name, mixed $definition, [mixed $shared])

Пытается зарегистрировать сервис в контейнере сервисов. Успешно только если сервис ранее не был зарегистрирован с тем же именем

public setRaw (mixed $name, Phalcon\Di\ServiceInterface $rawDefinition)

Устанавливает сервис с помощью определения Phalcon\Di\Service в сыром формате

public getRaw (mixed $name)

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

public getService (mixed $name)

Возвращает экземпляр Phalcon\Di\Service

public get (mixed $name, [mixed $parameters])

Разрешает сервис на основе его конфигурации

public mixed getShared (string $name, [array $parameters])

Разрешает сервис. Разрешённый сервис хранится в DI, последующие запросы к этому сервису вернут тот же экземпляр

public has (mixed $name)

Проверяет, содержит ли DI сервис по имени

public wasFreshInstance ()

Проверяет, создал ли последний полученный через getShared сервис новый экземпляр или существующий

public getServices ()

Возвращает зарегистрированные в DI сервисы

public offsetExists (mixed $name)

Проверяет, зарегистрирован ли сервис с помощью синтаксиса массива

public offsetSet (mixed $name, mixed $definition)

Позволяет зарегистрировать общий сервис с помощью синтаксиса массива

$di["request"] = new \Phalcon\Http\Request();

public offsetGet (mixed $name)

Позволяет получить общий сервис с помощью синтаксиса массива

var_dump($di["request"]);

public offsetUnset (mixed $name)

Удаляет сервис из контейнера сервисов с помощью синтаксиса массива

public __call (mixed $method, [mixed $arguments])

Магический метод для получения или установки сервисов с помощью методов-сеттеров/геттеров

public static setDefault (Phalcon\DiInterface $dependencyInjector)

Устанавливает контейнер инъекции зависимостей по умолчанию, который будет получаться в статических методах

public static getDefault ()

Возвращает последний созданный DI

public static reset ()

Сбрасывает внутренний DI по умолчанию

© 2011–2017 Phalcon Framework Team
Licensed under the Creative Commons Attribution License 3.0.
https://docs.phalconphp.com/en/latest/api/Phalcon_Di.html

Spec-Zone.ru

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