Страница 1 из 1

Get instance

Добавлено: 2019.03.15, 20:41
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
А каково ваше мнение?

Re: Get instance

Добавлено: 2019.03.15, 21:01
samdark
Очень извращённая форма синглтона :)

Re: Get instance

Добавлено: 2019.03.15, 21:47
pahuss
Это понятно, что это синглтон, я хотел спросить о другом, не извращение ли это в отношении обращения к компоненту.
Само собой я привел сокращенный код, показав суть.

Re: Get instance

Добавлено: 2019.03.15, 22:49
ElisDN
Извращение.

Re: Get instance

Добавлено: 2019.03.16, 20:15
pahuss
Спасибо за ответы. Тогда каким образом было бы уместно в yii приложении обращаться к своему базовому компоненту, представляющему доступ к бизнес-логике приложения. Так сказать основной класс приложения, считая yii просто платформой для бизнес системы. Кроме Yii::$app->get(...)
И уместно ли это вообще?

Re: Get instance

Добавлено: 2019.03.16, 23:11
ElisDN
Можно инжектить в конструктор безо всяких Yii::$app.