Реализация DI во фреймворке

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
zoh
Сообщения: 54
Зарегистрирован: 2011.05.12, 00:58

Реализация DI во фреймворке

Сообщение zoh »

Добрый день.

На других сайтах видел информацию, что в Yii с 1.1 используется DI.
Где в коде фреймворка можно сие увидеть?

Спасибо.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Реализация DI во фреймворке

Сообщение samdark »

Повсеместно. Используется с 1.0, а не с 1.1.
AlTiger
Сообщения: 199
Зарегистрирован: 2012.01.15, 18:37

Re: Реализация DI во фреймворке

Сообщение AlTiger »

А что это такое? если не секрет?
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: Реализация DI во фреймворке

Сообщение flashimage »

Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
zoh
Сообщения: 54
Зарегистрирован: 2011.05.12, 00:58

Re: Реализация DI во фреймворке

Сообщение zoh »

То есть, как я понимаю в yii нет компонента реализующего инъекцию, и инъекция делается в ручную?
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: Реализация DI во фреймворке

Сообщение Skiller »

если грубо и просто то везде где ты задаешь у компонента class это и есть DI, эти компоненты потом передаются либо через конструктор либо как свойства.
zoh
Сообщения: 54
Зарегистрирован: 2011.05.12, 00:58

Re: Реализация DI во фреймворке

Сообщение zoh »

Код: Выделить всё

// из документации
return array(
    // 'preload'=>array('xyz',…),
    'components'=>array(
        'xyz'=>array(
            'class'=>'ext.xyz.XyzClass',
            'property1'=>'value1',
            'property2'=>'value2',
        ),
        // прочие настройки компонентов
    ),
);

...
// Дальше при обращении в объект XyzClass инкапсулируются эти свойства
Yii::app()->xyz

class Model
{
    function __constructor(IService $service)
    {
       // хочу чтобы $service instanceof XyzClass
    }
}
Так вот в каком месте "xyz" будет передаваться в конструктор, например в конструктор модели?
zoh
Сообщения: 54
Зарегистрирован: 2011.05.12, 00:58

Re: Реализация DI во фреймворке

Сообщение zoh »

Конечно я понимаю, что могу инстанцировать модель через фабрику; моя цель - узнать есть ли в yii нужные механизмы, из коробки контейнер.
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: Реализация DI во фреймворке

Сообщение Skiller »

в конструктор модели ни в каком, посмотрите классы :) Не там ищете опять же, например вот вам DI через конструктор когда передается объект
https://github.com/yiisoft/yii/blob/1.1 ... er.php#L72 или https://github.com/yiisoft/yii/blob/1.1 ... d.php#L100
Ответить