Модуль. Для чего? Как?

Я не понимаю для чего и как использовать модули.

  1. Например удобно ли подключать сторонний модуль в систему с уже существующим дизайном, слоями и.т.д? Ведь у модуля свои слои, свой дизайн и к дизайну приложения он не может обратиться. В результате у нас ест приложение с модулем с собственным дизайном.

Это будет копи/паст слоев и дизайна в модуль?

  1. Я понимаю, что возможность вызова логики модуля из системы и из других модулей ведет к увеличению связанности кода.

Но ведь я могу написать отдельный модуль для управления связями и зависимостями между ними(система портов в FreeBSD например, пакетный менеджер в debian).

Как я могу разбить систему на модули, сохранив возможность обмениваться сообщениями между модулями?

Итог. Как использовать модули? Для чего? Без возможности обмена сообщениями между ними и системой они выглядят бесполезными

Модули в Yii носят структурирующий характер. Чаще всего их используют для разграничивания логики приложения.

Копипастить ничего не надо. Например, если Вы используете темы, то layout кладёте в themes/default/views. Модульные темы кладёте в protected/views/myModule/*.php. Будет грузиться основной лэйаут приложения и отображения модуля.

Обращаться к другим контроллерам можно например так:




// создаём контроллер, основываясь на нашем роуте

$p      = Yii::app()->createController('module/controller/index');

// берем функцию           

$result = $p[0]->someFunction($params);

// или экшен

$r      = $p[0]->actionIndex();



Для проверки зависимостей, можете создавать контроллеры и смотреть что возвращает функция createController.