Так какие же подводные камни есть в архитектуре Yii2? Почитал холиваров на тему Yii vs Phalcon. Заинтересовал один нюанс про DI контейнеры. В Yii это yii::$app->service //доступно везде и всегда В фалконе надо передавать и принимать контейнер через сеттеры На ваш взгляд? В чем минус подхода yii2? Начитался критики в его сторону, в частности к его контейнеру
Один из основных минусов подхода Yii2 к DI контейнерам, как указано в вашем вопросе, может быть связан с использованием глобальной переменной Yii::$app для доступа к сервисам. Это делает код менее модульным и тестируемым, так как сервисы становятся недоступными без доступа к глобальной переменной Yii::$app. Это усложняет написание модульных тестов и усложняет поддержку приложения в целом.
Кроме того, использование глобальной переменной может стать источником проблем с производительностью и масштабируемостью приложения. Поскольку доступ к сервисам осуществляется через Yii::$app, это может привести к узким местам в обработке запросов и затруднить масштабирование приложения при увеличении нагрузки.
Таким образом, необходимо обдуманно использовать глобальные переменные в архитектуре приложения и выбирать подход, который делает код более модульным, тестируемым и масштабируемым.
Один из основных минусов подхода Yii2 к DI контейнерам, как указано в вашем вопросе, может быть связан с использованием глобальной переменной Yii::$app для доступа к сервисам. Это делает код менее модульным и тестируемым, так как сервисы становятся недоступными без доступа к глобальной переменной Yii::$app. Это усложняет написание модульных тестов и усложняет поддержку приложения в целом.
Кроме того, использование глобальной переменной может стать источником проблем с производительностью и масштабируемостью приложения. Поскольку доступ к сервисам осуществляется через Yii::$app, это может привести к узким местам в обработке запросов и затруднить масштабирование приложения при увеличении нагрузки.
Таким образом, необходимо обдуманно использовать глобальные переменные в архитектуре приложения и выбирать подход, который делает код более модульным, тестируемым и масштабируемым.