Get instance

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

Get instance

Сообщение pahuss » 2019.03.15, 20:41

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


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
Администратор
Сообщения: 8860
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Get instance

Сообщение samdark » 2019.03.15, 21:01

Очень извращённая форма синглтона :)
Нравится Yii? Поставьте звёздочку на github.

17 мая 2019, Москва — PHP Russia — большая конференция про PHP.

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

Re: Get instance

Сообщение pahuss » 2019.03.15, 21:47

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

Аватара пользователя
ElisDN
Сообщения: 5146
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Get instance

Сообщение ElisDN » 2019.03.15, 22:49

Извращение.

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

Re: Get instance

Сообщение pahuss » 2019.03.16, 20:15

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

Аватара пользователя
ElisDN
Сообщения: 5146
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Get instance

Сообщение ElisDN » 2019.03.16, 23:11

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

Ответить