Модули Yii существуют для решения двух задач:
- Группировка похожих функций приложения.
- Изоляция функций для их последующего использования в других проектах.
Когда команда Yii думала над модулями, задача рассматривалась целиком: то есть и группировка и изоляция. Но как только сообщество начало использовать модули, оказалось, что используются они, в основном, для группировки.
Оно и понятно: нормальную изоляцию сделать тяжело. Модуль не должен в этом случае использовать что-либо извне напрямую. Если что-либо необходимо, модуль предоставляет интерфейс, который реализуется в приложении, использующем модуль. То же применимо и к обратной ситуации: извне использовать что-либо из модуля напрямую строго запрещено: только через интерфейс.