Так какие же подводные камни есть в архитектуре Yii2?

Почитал холиваров на тему Yii vs Phalcon. Заинтересовал один нюанс про DI контейнеры.
В Yii это yii::$app->service //доступно везде и всегда
В фалконе надо передавать и принимать контейнер через сеттеры

На ваш взгляд? В чем минус подхода yii2? Начитался критики в его сторону, в частности к его контейнеру
  • Вопрос задан
  • 1585 просмотров
Решения вопроса 1
index0h
@index0h
PHP, Golang. https://github.com/index0h
В чем минус подхода yii2?

В любой точке вашего кода можно спокойно нагнуть весь ваш проект, учитывая, что $app - публичная статическая переменная. По сути это мало чем отличается от глобальной переменной, пусть и в отдельном неймспейсе.

Начитался критики в его сторону, в частности к его контейнеру

Вы можете поменять в рантайме все что угодно просто потому, что у вас есть доступ. Подобная свобода для крупных проектов - это дико опасная практика.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@oxidmod
передавать контейнер кудато дальше чем в контроллер - антипаттерн. используйте DI и передавайте в свои сервисы отлько то что им нужно, а не весь контейнер
Ответ написан
@dmitriylanets
плюсы: 1. ленивая загрузка зависимостей 2. тестируемость
минусы: 1. отсутствие контракта между классами 2. Делает видимость хорошого дизайна класса (Неопределенная сложность класса) 3. вариант DI в YII еще являться синглитоном нарушает многослойность системы
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы