Модуль против контроллера - PullRequest
3 голосов
/ 02 марта 2011

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

I 'мы немного прочитали, а именно справочные документы существующих фреймворков.Я вижу слово Модуль , разбросанное вокруг, и из моего чтения и предыдущего опыта, Модуль - это концепция, применяемая для разделения связанного кода (Представления, Контроллеры, Модели и т. Д.)

Мне любопытно, как SO видит Модуль в этом контексте?(контекстом является архитектура веб-приложения MVC или подобный шаблон разработки приложений)

Я пытаюсь определить, как лучше всего применить это, поскольку (я считаю) это соответствует моему текущему затруднительному положению.Для музыкального веб-сайта модуль будет выглядеть как Artist, Producer и т. Д., Тогда как контроллерами будут Profile, Media и т. Д. Это, конечно, оставляет такие действия, как View илиEdit.

Все это кажется хорошим, потому что теперь я могу выполнять маршрутизацию следующим образом:

'Artist/Profile/View/{ALIAS}'
    +- Module : Artist
    +- Controller : Profile
    +- Action : View

//this may be accessed via music.com/artist/{alias}
//defaulting the Controller and Action

.. но я пытаюсь выяснить, как работает Модуль *Здесь подходит концепция 1027 *, в частности, как я бы организовал или изменил свои контроллеры в соответствии с требованиями.


Это тип файловой системы, о которой я думаю;

+- Root
    +- 'index.php'
    +- 'api.php'
    +- Modules
    |   +- Public
    |   |   +- Controllers
    |   |   +- Views
    |   |
    |   +- User
    |   |   +- Controllers
    |   |   +- Views
    |   |
    |   +- Artist
    |   |   +- Controllers
    |   |   +- Views
    |   |
    |   +- Producer
    |   |   +- Controllers
    |   |   +- Views
    |   |
    |   +- Venue
    |   |   +- Controllers
    |   |   +- Views
    |   |
    |   +- Administrator
    |       +- Controllers
    |       +- Views
    |
    +- Models
    +- Config
    +- ...

Ответы [ 2 ]

2 голосов
/ 02 марта 2011

Модули (называемые плагинами в CakePHP) - это практически мини-приложения в большинстве сред. У них есть своя собственная структура MVC, и они обычно самодостаточны, возможно, полагаясь только на модели основных приложений, чтобы сохранить код для повторного использования.

Мы используем Zend там, где мы работаем, и примерами модулей будут

  1. Модуль администрирования для администраторов сайта для внесения изменений в систему.
  2. Веб-модуль для общего интерфейса сайта
  3. Пользовательский модуль для зарегистрированных пользователей, которые имеют дополнительные инструменты управления для выполнения своей деятельности на сайте

В основном все они относятся к одному и тому же сайту / системе, но имеют дело в основном не с перекрытием.

1 голос
/ 02 марта 2011

В простейшем случае модуль будет папкой в ​​вашем приложении (желательно в заранее определенном месте, например, /modules). После этого у вас будет целый стек MVC внутри каждого модуля с общими библиотеками и самой структурой на верхнем уровне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...