Когда использовать модули в Zend Framework?

При настройке новых проектов ZF у меня нормальная структура каталогов:

  • заявление
    • модули
      • по умолчанию
        • контроллер
        • формы
        • Посмотреть
        • модели
      • админ
        • контроллер
        • формы
        • Посмотреть
        • модели
    • язык
    • общий
      • модели
  • библиотека
  • общественности

Я использую только модули, когда, например, макет отличается, или используется разная база данных, или, конечно, когда это особый случай, например, админ-сервер или форум / доска. Тогда у меня есть контроллер для разных частей приложения. например JobController, ProductController и т. д.

Мой коллега показал мне его базовый макет. его почти то же самое, но он использует много модулей. как модуль работы, модуль продукта, каждый из этих модулей имеет в основном 2 контроллера – IndexController и AdminController.

Его настройка работает и не ошибается, но я никогда не видел такого подхода, его кажется ненужным сложным.

Итак, чтобы подойти к концу:

  1. Когда вы будете использовать модули и когда будете придерживаться контроллеров?
  2. Каково ваше правило, чтобы выбрать модуль или модуль?
  3. Каковы минусы и плюсы настройки моего коллеги в вашей точке зрения?
  4. Каковы минусы и плюсы моей установки в вашей точке зрения?

ТИА

Руфин

EDIT : см. Http://mwop.net/blog/2012-04-30-why-modules.html для информации о переработанных модулях в ZF2.0.

Каковы минусы и плюсы настройки моего коллеги в вашей точке зрения?

Лучшее повторное использование. Предполагая, что ваш коллега оставил код внутри модулей независимым от других модулей, он фактически создал автономный проблемный домен. В отличие от вашего подхода, он может более легко скопировать весь модуль в другие приложения.

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

Такой же как ты. Для основных разделов моего веб-сайта, таких как front-end, раздел admin, раздел членов и т. Д. …

Каково ваше правило, чтобы выбрать модуль или модуль?

Является ли это частью основного сайта или своего маленького мира, только что связанного с интерфейсом? Особенно в отношении дизайна. Как вы управляете несколькими модулями, используя один и тот же макет?

Каковы минусы и плюсы настройки моего коллеги в вашей точке зрения?

Боже мой. Все эти папки вообще ничего. Почему у вас есть страница о странице и контакте в двух разных файловых структурах? И где он ставит администраторов и членов, если он использует модули для простых страниц?

Каковы минусы и плюсы моей установки в вашей точке зрения?

На самом деле это противоположное. Легко понять и когерентную структуру.

Его стоит добавить к тому, как команда zend намеревалась использовать эту ссылку

Еще одна вещь, о которой нужно подумать, – это то, как выглядят ваши URL.

myapp.com/contact

myapp.com/about

myapp.com/members/profile

myapp.com/members/profile/edit

myapp.com/members/mail

Это простой способ помочь организовать то, что будет в модулях или контроллерах.

… например, Job-Module, Product-Module, каждый из этих модулей имеет в основном 2 контроллера IndexController и AdminController.

Это описание создает для меня красный флаг. ЕСЛИ это был действительно большой проект, который должен был полагаться на высокую возможность повторного использования, и ЕСЛИ он закодировал такие модули таким образом, чтобы они могли работать независимо от других модулей в системе и ЕСЛИ необходимо изолировать область администрирования для каждого модуля, то это можно считать разумным подходом.

Но я бы предположил, что существует зависимость между Job и продуктом, и в этом случае этот модульный подход звучит как чрезмерная инженерия. Особенно, если, как представляется, применяется произвольное «правило» (например, один бизнес-объект на модуль).

Кроме того, большинство инфраструктур MVC предполагают, что если у вас есть модели Job и Product, у вас есть контроллеры Job и Product (а не IndexController для каждого объекта). Целью модулей является разделение логических и презентационных областей вашего сайта, а не разделение бизнес-логики.

Хотя это, вероятно, ни здесь, ни там, насколько подходит MVC, мне не имеет смысла создавать модуль, который не может работать полностью независимо от других модулей.

Q) Когда вы будете использовать модули и когда будете придерживаться контроллеров?

A) Для меня все зависит от размера приложения. Если у вас более 10 контроллеров, вы можете подумать о реорганизации некоторых из них в отдельный модуль. Если вы планируете создать приложение REALY BIG, возможно, стоит потратить его на модули перед началом работы.

Q) Каково ваше правило, чтобы выбрать модуль или модуль?

A) Как я уже сказал, более 10 контроллеров.

Q) Каковы минусы и плюсы настройки моего коллеги в вашей точке зрения?

A) Если это небольшой проект, он над инженерией, что затруднит продвижение других разработчиков и займет у него больше времени, чем необходимо для разработки в первую очередь. Он также рискует запутать себя.

Q) Каковы минусы и плюсы моей установки в вашей точке зрения?

A) Мой ответ выше почти полностью охватывает его, если это небольшой проект, ваш путь будет более быстрым и менее запутанным в долгосрочной перспективе. Я предпочитаю этот подход и просто рефакторинг, если область увеличена.