Get instance

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
pahuss
Сообщения: 3
Зарегистрирован: 2015.04.09, 15:41

Get instance

Сообщение pahuss »

Каково ваше мнение по поводу такого приема:


config/main.php

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

'components' => [
//...
        'myBaseComponent' => [
            'class' => \core\MyBaseComponent::class
        ]
        //...
    ],
    
MyBaseComponent.php

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

namespace core;

class MyBaseComponent extends \yii\base\Component
{

    public static function getInstance()
    {
	return \Yii::$app->get('myBaseComponent');
    }

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

Re: Get instance

Сообщение samdark »

Очень извращённая форма синглтона :)
pahuss
Сообщения: 3
Зарегистрирован: 2015.04.09, 15:41

Re: Get instance

Сообщение pahuss »

Это понятно, что это синглтон, я хотел спросить о другом, не извращение ли это в отношении обращения к компоненту.
Само собой я привел сокращенный код, показав суть.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Get instance

Сообщение ElisDN »

Извращение.
pahuss
Сообщения: 3
Зарегистрирован: 2015.04.09, 15:41

Re: Get instance

Сообщение pahuss »

Спасибо за ответы. Тогда каким образом было бы уместно в yii приложении обращаться к своему базовому компоненту, представляющему доступ к бизнес-логике приложения. Так сказать основной класс приложения, считая yii просто платформой для бизнес системы. Кроме Yii::$app->get(...)
И уместно ли это вообще?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Get instance

Сообщение ElisDN »

Можно инжектить в конструктор безо всяких Yii::$app.
Ответить