Структура файла CMS Zend Framework 2

Я пытаюсь создать простую систему управления контентом на основе Zend Framework 2. Проблема в том, что я не знаю, как должна выглядеть структура папок.

До сих пор я имею в виду решения:

A. Создание общего модуля "Admin", который имеет несколько контроллеров, таких как контроллер входа, контроллер страниц, контроллер сообщений, каждый из этих контроллеров своими действиями.

B. Построение модуля для каждого компонента, например: Pages Module, который имеет adminController и frontendController.

Я уверен, что ни одно из вышеперечисленных решений не является одним из ключевых, но не могло найти твердого решения или книг для его обеспечения. Я взглянул на getCMS, но заметил, что этот, т.е. Сохраняет все данные, подобные представлениям макетов в базе данных, и это не решение.

2 ответа

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

Администратор ансамбля работает на ZfcAdmin. Таким образом, вы можете зайти в модуль блога, который имеет только контроллер администратора по маршруту ZfcAdmin. Но вы также можете управлять страницами (например, текстами) с навигационной структурой страницы. Все части контента (текст, блог и т.д.) Являются отдельными модулями.

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

Основные преимущества для "вашей системы B" - вы можете при необходимости отбросить модули. Все они предоставляют свои собственные конфигурации, контроллеры, модели и представления. Легко установить их с точки зрения разработчиков (загрузка в композиторе, включение в приложении config), и вы можете легко переопределить любой вид своими собственными.

TL; DR: выберите структуру B и посмотрите на Ensemble.

/edit: увидев, что вы прокомментируете ответ Сэма: да, вы должны это сделать. В ансамбле вы указываете конфигурацию маршрута для интерфейса и создаете свои маршруты администратора в качестве дочерних маршрутов ZfcAdmin. Для интерфейса как бэкэнд у вас есть отдельные контроллеры.


Неправильно или неправильно, когда дело доходит до создания чего-то нового. Лично я бы пошел с B. Я бы даже не назвал контроллеров, как вы (я бы их разломал намного больше, например NewsAddController, NewsEditController, NewsDetailsController и т.д.). Тогда у меня будет AdminModule, который просто отобразит новый макет с определенным "AdminNavigation". Это AdminNavigation может быть заполнено через другие модули (то есть NewsModule будет вводить собственные административные маршруты в AdminNavigation через module.config.php)

licensed under cc by-sa 3.0 with attribution.