CMS::Взаимодействие модулей

chakky

Новичок
CMS::Взаимодействие модулей

Привет!
Народ, тут такая вечная проблема возникла... вобщем, вопрос, даже более чем абстрактен, постараюсь максимально конкретизировать.

Меня интересуют наиболее оптимальные (красота архитектуры, расширяемость, производительность... добавьте по вкусу) идеи и реализации поектирования той части ядра CMF, которая осуществляет обмен информацией и управляет взаимодействием между модулями какими-либо данными.

Допустим, есть гипотетический запрос пользователся. В результате, запроса, ядро инстанциирует соответсвующий контроллер (в случае MVC) и вызывает его Акшн (не важно, как контроллеры с Акшинами храняться физически - файлы и классы, как в Зенд, Папки и фалы, ещё что-то , собираемое из конфига). Допустим, у нас есть несколько модулей, которые так же хотят внести свою лепту в выходной поток юзеру или сделать/изменить ещё что-то.

Меня интересуют решения проектирования пободной структуры и функционала, как лучше сделать???

зы: Если читающий пожелает ответить, но будет не совсем ясно, что именно мне нужно - буду рад дополнить свой вопрос, по конкретному замечанию.
 

fixxxer

К.О.
Партнер клуба
столь абстракнтый вопрос явно говорит о том, что ты еще толком ничего и не спроектировал, просто размышляешь. :) начни проектировать, нарисуй диаграммы - множество вопросов исчезнет.
 

chakky

Новичок
кое-что есть (в основном, это реимплементация Зенд Фреймвёрк), но то что есть, не нравится... ибо убого и "не красиво".

... было бы хорошо, если к проектированию приступать с определённым, сложившимся мнением о преимуществах/способах, используемых другими, уже что-то успешно реализовавшими.
 

fixxxer

К.О.
Партнер клуба
Зенд фреймворк - в целом не лучший образец. Посмотри WACT.
 

chakky

Новичок
fixxxer,
Да. Просто команда разработчиков, в ридми, отписалась, что оччень скоро (уже 2 месяца как), передалают всю идеологию раутинга и диспетчерезации... вот и решил у народа поспрашивать...

Кстати, это тот фреймвёрк, который описывался в одном из phpinside'ов?

правка:
собственно, погуглив по WACT, нашёл несколько "конкурирующих" решений, например - LIMB и ProsgessCMS (http://phpclub.unet.ru/talk/showthread.php?postid=345519#post345519)
есть какие-либо предпочтения одного другому, какой из них можно взять за "лучший" вариант (дабы не вкуривать все 3и сразу... к этому времени ПХП уже полностью ООП станет ;)
 

chakky

Новичок
Вобщем, народ, пасиб!
Пересмотрю свои соображения по структуре на примерах WACT (хм... как-то Зенд не прорулил...)
 

fixxxer

К.О.
Партнер клуба
LIMB сложно назвать конкурирующим с WACT :) он на нем основан :)
 

atv

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

Способы установки зависимостей между объектами можно почитать здесь (http://wiki.agiledev.ru/doku.php?id=ooad:dependency_injection).

Что касается названия метода, то его можно явно прописать в классе, или указывать непосредственно в проекте, как это делается в событийно-ориентированных приложениях. Почитать можно здесь (http://wiki.agiledev.ru/doku.php?id=ooad:event_driven_programming)
 
Сверху