Добрый день.
На других сайтах видел информацию, что в Yii с 1.1 используется DI.
Где в коде фреймворка можно сие увидеть?
Спасибо.
Реализация DI во фреймворке
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Реализация DI во фреймворке
Повсеместно. Используется с 1.0, а не с 1.1.
Нравится Yii? Давайте сделаем его лучше!.
Re: Реализация DI во фреймворке
А что это такое? если не секрет?
- flashimage
- Сообщения: 1517
- Зарегистрирован: 2011.01.23, 12:43
Re: Реализация DI во фреймворке
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Re: Реализация DI во фреймворке
То есть, как я понимаю в yii нет компонента реализующего инъекцию, и инъекция делается в ручную?
Re: Реализация DI во фреймворке
если грубо и просто то везде где ты задаешь у компонента class это и есть DI, эти компоненты потом передаются либо через конструктор либо как свойства.
Re: Реализация DI во фреймворке
Код: Выделить всё
// из документации
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
}
}
Re: Реализация DI во фреймворке
Конечно я понимаю, что могу инстанцировать модель через фабрику; моя цель - узнать есть ли в yii нужные механизмы, из коробки контейнер.
Re: Реализация DI во фреймворке
в конструктор модели ни в каком, посмотрите классы Не там ищете опять же, например вот вам DI через конструктор когда передается объект
https://github.com/yiisoft/yii/blob/1.1 ... er.php#L72 или https://github.com/yiisoft/yii/blob/1.1 ... d.php#L100
https://github.com/yiisoft/yii/blob/1.1 ... er.php#L72 или https://github.com/yiisoft/yii/blob/1.1 ... d.php#L100