User management в отдельном модуле

Есть задача написать большое модульное приложение. Соответственно юзаем модули :) Есть так же желание разрабатывать модули так, чтобы потом можно было заюзатьв другом проекте. Первый кандидат на такой модуль - модуль юзеров. Но с ним есть несколько проблем:

  1. UserIdentity::authenticate() Хочется вынести эту логику тоже в модуль. Как можно это сделать? Чтобы и логин урл указывал в модуль и все что связано с юзерами было там

  2. Если модели/компоненты, связанные с юзерами будут в модуле, то как я получу к ним доступ из другого модуля?

  3. Если есть виджеты, связанные с юзерами, например "юзеры онлайн", то виджет я конечномогу положить в modules/user/components/WOnlineUsers.php, но если этот виджет рендерится на странице, скажем модуля статей (потому что прописан он в лейауте), то как WOnlineUsers, который юзает модель User, которая хранится в modules/user/models/User.php сможет работать? Он же работает не в контексте своего модуля.

Кто реализовывал такие максимально развязанные системы, поделитесь опытом :)

  1. Посмотрите это расширение: http://www.yiiframework.com/extension/yii-user-management/ Тут юзерская часть полностью реализована отдельным модулем.

  2. Если в инициализации модуля указываются импорты, то достаточно обратиться к нему так: $userModule = Yii::app()->getModule(‘user’). Он будет инициализирован, а в $userModule поместится созданный объект модуля.

  3. Если вы имеете ввиду, что он не найдет модели и компоненты, то можно сделать Yii::import() нужных классов прямо внутри виджета. А вообще предложение уж очень запутанное вышло :)

P.S. А может модуль юзеров сразу подгрузить при запуске приложения и не думать, что какой-то класс случайно не подключится? :)