Когда использовать модули в Zend Framework?
При настройке новых проектов ZF у меня нормальная структура каталогов:
- приложения
- модули
- по умолчанию
- контроллер
- формы
- вид
- Модели
- админ
- контроллер
- формы
- вид
- Модели
- язык
- общий
- библиотека
- общественности
Я использую только модули, когда, например, макет отличается, или используется разная база данных, или, конечно, когда это особый случай, например, админ-сервер или форум/доска. Тогда у меня есть контроллер для разных частей приложения. например JobController, ProductController и т.д.
Один мой коллега показал мне его базовый макет. его почти то же самое, но он использует много модулей. как модуль работы, модуль продукта, каждый из этих модулей имеет в основном 2 контроллера - IndexController и AdminController.
Его настройка работает и не ошибается, но я никогда не видел такого подхода, его кажется ненужным сложным.
Итак, чтобы подойти к концу:
- Когда вы будете использовать модули и когда будете придерживаться
Контроллеры?
- Каково ваше правило для выбора модуля или модуля?
- Каковы минусы и плюсы моей коллеги в вашей точке
зрения?
- Каковы минусы и плюсы моей настройки в вашей точке зрения?
ТИА
Руфин
EDIT: см. http://mwop.net/blog/2012-04-30-why-modules.html для информации о переработанных модулях в ZF2.0
Ответы
Ответ 1
Что такое минусы и плюсы моей настройки коллеги в вашей точке зрения?
Улучшение повторного использования. Предполагая, что ваш коллега оставил код внутри модулей независимым от других модулей, он фактически создал автономный проблемный домен. В отличие от вашего подхода, он может более легко скопировать весь модуль на другие приложения.
Ответ 2
Когда вы будете использовать модули и когда вы будете придерживаться контроллеров?
То же, что и вы. Для основных разделов моего веб-сайта, таких как front-end, раздел admin, раздел участников и т.д.
Каково ваше правило для выбора модуля или не модуль?
Является ли это частью основного сайта или своего небольшого мира, только связанного с интерфейсом?
Особенно в отношении дизайна. Как вы управляете несколькими модулями, использующими один и тот же макет?
Каковы минусы и плюсы моего коллега в вашей точке смотреть?
Боже мой. Все эти папки вообще ничего. Почему у вас есть страница о странице и контакте в двух разных файловых структурах? И где он ставит администратора и членов, если он использует модули для простых страниц?
Каковы минусы и плюсы моей настройки с вашей точки зрения?
Действительно, противоположное вышеизложенному. Простая для понимания и когерентная структура.
Его стоит добавить его способ, которым команда zend намеревалась использовать его ссылка
Еще одна вещь, о которой стоит подумать, - это то, как выглядят ваши URL.
myapp.com/contact
myapp.com/about
myapp.com/members/profile
myapp.com/members/profile/edit
myapp.com/members/mail
Это простой способ помочь организовать то, что будет в модулях или контроллерах.
Ответ 3
... как Job-Module, Product-Module, каждый из этих модулей имеет в основном 2 контроллера IndexController и AdminController.
Это описание создает для меня красный флаг. ЕСЛИ это был действительно большой проект, который должен был полагаться на высокую возможность повторного использования, и ЕСЛИ он закодировал такие модули таким образом, чтобы они могли работать независимо от других модулей в системе и ЕСЛИ необходимо изолировать область администрирования для каждого модуля, то это можно считать разумным подходом.
Но я бы предположил, что существует зависимость между Job и Product, и в этом случае этот модульный подход звучит как чрезмерная инженерия. Особенно, если, как представляется, применяется произвольное "правило" (например, один бизнес-объект для каждого модуля).
Кроме того, большинство инфраструктур MVC предполагают, что если у вас есть модели Job и Product, у вас есть контроллеры Job и Product (а не IndexController для каждого объекта). Целью модулей является разделение логических и презентационных областей вашего сайта, а не разделение бизнес-логики.
Хотя он, вероятно, ни здесь, ни там, насколько подходит MVC, мне не имеет смысла создавать модуль, который не может полностью функционировать от других модулей.
Ответ 4
Q) Когда вы будете использовать модули и когда будете придерживаться контроллеров?
A) Для меня все зависит от размера приложения. Если у вас более 10 контроллеров, вы можете подумать о реорганизации некоторых из них в отдельный модуль. Если вы планируете создавать приложение REALY BIG, возможно, стоит потратить его на модули перед началом работы.
Q) Каково ваше правило для выбора модуля или модуля?
A) Как я уже сказал, имеет более 10 контроллеров.
Q) Каковы минусы и плюсы настройки моего коллеги в вашей точке зрения?
A) Если это небольшой проект, он над инженерией, что усложнит работу других разработчиков и займет у него больше времени, чем необходимо для разработки в первую очередь. Он также рискует запутать себя.
Q) Каковы минусы и плюсы моей настройки в вашей точке зрения?
A) Мой ответ выше почти полностью охватывает его, если это небольшой проект, ваш путь будет более быстрым и менее запутанным в долгосрочной перспективе. Я предпочитаю этот подход и просто рефактор, если область увеличена.