В принципе, мне нравится идея создания подключаемого модуля для каждого набора функций - новостей, пользователей, галерей и т. Д. «Включение» этого модуля обеспечит функциональность для внутреннего администратора и внешнего интерфейса. дисплей. Это автономное место для размещения всех функций - моделей, помощников действий, помощников просмотра, просмотра сценариев. и т.д. - что вам нужно для этой области контента. Для каждого модуля может быть два контроллера - News_BackendController и News_FrontendController - предназначенные для их конкретных областей.
Но на практике я считаю, что модули ZF делают это очень сложно. Я знаю, что более умные ребята, чем я - низкая планка, конечно, - могут заставить все это работать, но мне никогда не везло с этим.
Поэтому я обычно получаю два модуля - интерфейс и бэкэнд. Например, для работы с новостями в модуле бэкэнда должен быть контроллер новостей для управления контентом; другой контроллер новостей в модуле внешнего интерфейса для его отображения.
Важным моментом для меня в этой настройке является то, где разместить функциональность модели, которая является общей как для внешнего интерфейса, так и для администратора. Одна идея состоит в том, чтобы выпустить ее в отдельную библиотеку, а затем создать специфичные для модуля модели, расширяющие их для любой функциональной возможности конкретного модуля. Что-то вроде:
MyLibary_Model_News
для общих новостей.
Frontend_Model_News extends MyLibrary_Model_News
для любых новостных функций только для веб-интерфейса, если таковые имеются.
Admin_Model_News extends MyLibrary_Model_News
для любых новостных функций только для бэкэнда, если таковые имеются.
Просто некоторые идеи. Как всегда, YMMV.