Zend Framework :: Общий вопрос дизайна приложения - PullRequest
1 голос
/ 17 марта 2011

Я только начал изучать Zend (& OO PHP в этом отношении), последние 4-5 недель я потратил на изучение, учебные пособия, книги и т. Д. Я чувствую себя хорошо по этому поводу, но буду увлекаться моделями (вот и всеучусь)Сейчас я начинаю свое первое приложение (даже для работы);Он имеет как минимум 5 основных разделов (включая логин + потребуется ACL), а пара будет иметь до 10-12 подразделов, таких как admin: создание пользователя, редактирование пользователя и т. Д.

Я создал одинмакет, и сделали большинство просмотров страниц с рабочими ссылками, и уже несколько форм заполнены.

Моя главная задача сейчас заключается в том, должен ли я выполнить рефакторинг и сделать модули основных разделов, пока он не вышел из-под контроля, или я ни о чем не беспокоюсь.Одна вещь, которую я считаю неправильной, заключается в том, что у меня есть «AdminController», который не делает ничего, кроме «административного» представления, которое представляет собой не что иное, как ссылки на каждое действие «пользователя» в «UserController».Я думаю, может быть, я должен был поместить действия пользователя в AdminController.Я тоже думаю, что я должен сделать модуль 'admin', модуль 'reports', модуль 'auth' и т. Д. Или это нормально, чтобы в итоге было 8 контроллеров и их рост?У меня уже есть склонность создавать и поддерживать карту сайта разработчика только для собственного здравого смысла, не говоря уже о том, что я хочу сделать лучшую возможную работу:)

1 Ответ

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

В принципе, мне нравится идея создания подключаемого модуля для каждого набора функций - новостей, пользователей, галерей и т. Д. «Включение» этого модуля обеспечит функциональность для внутреннего администратора и внешнего интерфейса. дисплей. Это автономное место для размещения всех функций - моделей, помощников действий, помощников просмотра, просмотра сценариев. и т.д. - что вам нужно для этой области контента. Для каждого модуля может быть два контроллера - News_BackendController и News_FrontendController - предназначенные для их конкретных областей.

Но на практике я считаю, что модули ZF делают это очень сложно. Я знаю, что более умные ребята, чем я - низкая планка, конечно, - могут заставить все это работать, но мне никогда не везло с этим.

Поэтому я обычно получаю два модуля - интерфейс и бэкэнд. Например, для работы с новостями в модуле бэкэнда должен быть контроллер новостей для управления контентом; другой контроллер новостей в модуле внешнего интерфейса для его отображения.

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

MyLibary_Model_News для общих новостей.

Frontend_Model_News extends MyLibrary_Model_News для любых новостных функций только для веб-интерфейса, если таковые имеются.

Admin_Model_News extends MyLibrary_Model_News для любых новостных функций только для бэкэнда, если таковые имеются.

Просто некоторые идеи. Как всегда, YMMV.

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