[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Грамотная архитектура проекта
docentovich
Понимаю что есть много много готовых вариантов. Я собственно не велосипед хочу создать а просто разобраться в основах основ=))) просьба не отсылать к учебникам по ООП, если было бы время их читать (что то да я уже и читал, но если не получу ответа тут именно так и поступлю), я бы не написал сюда. За отсылку к статьям буду признателен (отличие статьи от книги в объеме!!!)! можно отослать например к учебнику по hmvc, начинать с основ ООП ну просто нет времени, уж простите.


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

1) создать модульную систему. каждый модуль имеет архитектуру mvc (под некотрые модули есть одна или несколько табличек в БД, а может и не быть)
2) модуль может вызывать другой модуль, собственно может получать как 1. данные из другого модуля 2. выводить внутрь своего представления (шаблона или вьюхи) представление другого модуля.
3) на один модуль есть 1 контроллер, 1 или более моделей (тут подскажите правильно ли писать под каждую табличку свою модель или модель на один модуль?) и несколько вьюх, в зависимотси от actiona. то есть в зависисмоти от actiona контроллер может подключать разные вьюхи.
4) к модулю мы можем получить доступ как из роутинга (то есть зашли например на страничку modul_name/action), так и из другого модуля. тут вопрос лоигично ли так делать, делают ли так другие программисты? или логичнее сделать как например реализовано в Joomla компоненты, к котjрым можем полуить доступ из роутинга и модули. по отдельности.
5) наличие общего реестра данных
6) вход в модуль (вьюху мы забираем или данные), осуществляеться одной строкой
7) модуль может быть использван много раз. например у нас есть модуль скажем выводящий галерею, мы его использовали например в основном шаблоне вывода, в другом модуле и еще глде нетиь где заблагорассудиться. очень бы не хотелось заводить все систему при этом по новой
8) (это условие не обязательное) доутсп к модулю можно осуществлять как внтури сервера (include) так и например модуль лежит где нить на стороннем сервере (данные мы получаем например по средством XML, или забираем целиком вьюху и вставлем в свой код на локальном сервере)


вопросы:
1. правильно ли делать забор данных одного модуля у другого через актионы, или актионы жто для пользователя, а для внутреннего обмена данными надо пользоваться другой схемой? (например для модуля создатеься 4ый файлик индексный котрый либо отдает данные либо выполняет актион контроллера)
2. правильно ли делать модули, к котрым мы имеме доступ как из роутинга так и из других модулей? или лоигчно делать как в той же джумле, модули и компоеннты?
3. есть модуль, данные котрого нужны всем другим модулям. не хотелось бы в каждом модуле запращивать/обращаться к этому данному модулю. напрмиер сложил в реестр и доволен. но возникает две проблеммы. 1. ресстр доступен локально, тоесть модуль на сторннем серваке не получит уже эти данные (но это вообщем даже не проблема без этого можно пережить) 2. модуль, данные котрого нужным всем остальным должен вызываться раньше остальных. а это уже какие то костыли. можно как то решить проблему с последовательностью вывода?
4. правльно ли делить модуль на три части - MVC или нужна еще четвертая - точка входа в модуль?
5. как определить действие в отношении какого модуля совершил пользователь. например на странце есть N модулей и у каждого есть несколько кнопок добавьт сохранить и пр. сверяться по имени кнопки нажатой в каждом из модулей? (простите за тупой вопрос, сам осознаю что он тупой)
6. правильно ли писать под каждую табличку свою модель или модель на один модуль?


более живой пример котрый я сумел придумать:
есть система учета. на странице выведено 3-4 модуля. один из модулей это выбор даты, за котрую мы просматирваем учет. другие модули выводят данные исходя из выбранной даты ессесено. косяк в том что: 1. каждый модуль должен обратиться к модулю выбора дат, для получения от оного даты, что не комильфо 2. а если же мы отправляем дату текущую в общий реестр то модуль с выбором дат должен запускаться раньше остальных модулей, что совсем не комильфо, иначе просто в нужный момент не будет этих данных.


лазая по нету, все что я сумел понять что под мои запросы более подходит архитектруа HMVC (на эту тему очень мало инфы!!!) но в ней есть недостаток, она в принципе не предполагает наличие общего реестра, обмен данными у модулей происходит в точек соприкосновения и только. а если мы прикуртим все же реестр (что есть костыль для этой архитектуры я так понял), то возникает необходимость в определнной последовательности вывода модулей что совсем грустно. или я совсем туп и забрел уже куда то не в ту степь?=))

ПС: ВЕЛОСИПЕД НЕ ПРИДУМЫВАЮ!!! ЕСТЬ ПРОСТО ЖЕЛАНИЕ РАЗОБРАТЬСЯ, НЕ БОЛЕЕ ТОГО!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.