Spec-Zone.ru › Yii 2.0

Класс yii\di\Instance

Все классы | Свойства | Методы
Наследование yii\di\Instance
Доступна с версии 2.0
Исходный код https://github.com/yiisoft/yii2/blob/master/framework/di/Instance.php

Instance представляет ссылку на именованный объект в контейнере инъекции зависимостей (DI) или локаторе сервисов.

Вы можете использовать get() для получения фактического объекта, на который ссылается $id.

Класс Instance используется в основном в двух случаях:

  • При конфигурировании контейнера инъекции зависимостей, вы используете Instance для ссылки на имя класса, имя интерфейса или псевдоним. Ссылка может быть позже разрешена в фактический объект контейнером.
  • В классах, которые используют локатор сервисов для получения зависимых объектов.

Следующий пример демонстрирует, как настроить контейнер DI с Instance:

$container = new \yii\di\Container;
$container->set('cache', [
    'class' => 'yii\caching\DbCache',
    'db' => Instance::of('db')
]);
$container->set('db', [
    'class' => 'yii\db\Connection',
    'dsn' => 'sqlite:path/to/file.db',
]);

И следующий пример показывает, как класс получает компонент из локатора сервисов:

class DbCache extends Cache
{
    public $db = 'db';

    public function init()
    {
        parent::init();
        $this->db = Instance::ensure($this->db, 'yii\db\Connection');
    }
}

Общедоступные свойства

Свойство Тип Описание Определено в
$id string Идентификатор компонента, имя класса, имя интерфейса или псевдоним yii\di\Instance

Общедоступные методы

Метод Описание Определено в
__set_state() Восстанавливает состояние класса после использования var_export() yii\di\Instance
ensure() Разрешает указанную ссылку в фактический объект и гарантирует, что он имеет указанный тип. yii\di\Instance
get() Возвращает фактический объект, на который ссылается этот объект Instance. yii\di\Instance
of() Создаёт новый объект Instance. yii\di\Instance

Защищенные методы

Метод Описание Определено в
__construct() Конструктор. yii\di\Instance

Подробности свойств

$id общедоступное свойство

Идентификатор компонента, имя класса, имя интерфейса или псевдоним

public string $id = null

Подробности методов

__construct() защищенный метод

Конструктор.

protected void __construct ( $id )
$id string

Идентификатор компонента

__set_state() общедоступный статический метод (доступен с версии 2.0.12)

Восстанавливает состояние класса после использования var_export()

См. также \yii\di\var_export().

public static yii\di\Instance __set_state ( $state )
$state array
throws yii\base\InvalidConfigException

если свойство $state не содержит id параметр

ensure() общедоступный статический метод

Разрешает указанную ссылку в фактический объект и гарантирует, что он имеет указанный тип.

Ссылка может быть указана как строка или объект Instance. Если строка, она будет обработана как идентификатор компонента, имя класса/интерфейса или псевдоним, в зависимости от типа контейнера.

Если вы не укажете контейнер, метод сначала попробует Yii::$app а затем Yii::$container.

Например,

use yii\db\Connection;

// returns Yii::$app->db
$db = Instance::ensure('db', Connection::className());
// returns an instance of Connection using the given configuration
$db = Instance::ensure(['dsn' => 'sqlite:path/to/my.db'], Connection::className());
public static object ensure ( $reference, $type = null, $container = null )
$reference object|string|array|static

Объект или ссылка на желаемый объект. Вы можете указать ссылку в виде идентификатора компонента или объекта Instance. Начиная с версии 2.0.2, вы также можете передать массив конфигурации для создания объекта. Если значение "class" не указано в массиве конфигурации, оно будет использовать значение $type.

$type string

Имя класса/интерфейса для проверки. Если null, проверка типа не будет выполнена.

$container yii\di\ServiceLocator|yii\di\Container

Контейнер. Это будет передано в get().

return object

Объект, на который ссылается Instance, или сам $reference , если это объект.

throws yii\base\InvalidConfigException

если ссылка недействительна

get() общедоступный метод

Возвращает фактический объект, на который ссылается этот объект Instance.

public object get ( $container = null )
$container yii\di\ServiceLocator|yii\di\Container

Контейнер, используемый для поиска объекта. Если null, метод сначала попробует Yii::$app , а затем Yii::$container.

return object

Фактический объект, на который ссылается этот объект Instance.

of() общедоступный статический метод

Создаёт новый объект Instance.

public static yii\di\Instance of ( $id )
$id string

Идентификатор компонента

return yii\di\Instance

Новый объект Instance.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-di-instance.html

Spec-Zone.ru

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