Создал админку своей будущей CMSки на основе Yii-каркаса. Присутствуют 3 модели (и соотв. таблицы): Menu (менюшка сайта), Post, Lookup (в ней также хранятся категории материалов и их иерархия). Все модели, по-умолчанию хранятся в папке Protected\Models (соотв вьюшки и контроллеры - в своих папках).
Сейчас собираюсь заняться фронтендом - на который необходимо выводить как раз те менюшки, посты при нажатии на них и т.д.
Как посоветуете сейчас мне поступить? Создать в папке Modules папку Admin и поместить их туда (с вьюхами и контроллерами)?
И еще - насколько я понял то надо будет создать новые контроллеры фронтенда на месте старых (с тем же именем?) но с функционалом который нужен для обычного пользователя? т.е может ссылка во фронтденде на конкретный материал будет post/view?id=5, а если тот же материал для вывода администратору то admin/post/view?id=5 (где admin- имя папки с админкой)?
P/S/ Cразу не пинайте - я только начинаю вьезжать в Yii ))))
согласен, велосипед, но это будет "мой велосипед", в результате работы над которым я таки планирую научиться работать правильно с этим замечательным фреймворком. Иначе прийдется кроме того чтоб разбираться с самим Yii влезать в ньюансы построения другого продукта.
Мне же, для начала, достаточно будет знать или верно я рассуждаю в поставленном вопросе. CMS не будет универсальной - она будет заточена под отдельный сайт организации. Просто свои наработки при необходимости, унесу в другой какой-то проект подобного класса.
Про свой велосипед согласен, сам люблю. Но начав работать с Yii писал привычные мне по простому РНР конструкции, делал толстые контроллеры, вручную делал HTML таблички и много подобных плохих вещей. Пока не открыл для себя gii и не разобрался в генерируемых им моделях и CRUD-контроллерах. Так сказать Yii-way. Так что вы правы, сразу переходить на сторонние решения не стоит. Но стоит посмотреть на стандартные генераторы кода.
Могу лишь сказать, что вопросы разделения на фронт-энд и бек-энд несколько раз поднимались на форуме, и не помню, что бы пришли к какому-либо идеальному результату.
Я например, не выносил админку в урл /admin, вместо этого использовал систему контроля доступа основанную на ролях (RBAC) и если пользователь имел токен "admin" к примеру, то ему отображались ссылки на админку и действия админки. Т.е. сам сайт и его админка обслуживались одними и теми же контроллерами.
RBAC - очень гибкая и мощная штука. Правда на её осознание понадобилось время. Для облегчения понимания и настройки использовал модуль http://www.yiiframework.com/extension/rbam/
К общему выводу не пришли и используют все кто что удобно. Я пока делю на основе RBAC, но у меня не совсем CMS Как для меня то проще всего (по логике ) делить на frontend/backend.
Composer в YiiInitializer можно и выпилить. По этому поводу - половине он нравится и без него никак, другой половине не нравится (и мне в том числе). Если у вас 2-3 пакета то он особой пользы не принесет, а вот если их сотни то тогда он нужен. У меня лично не срослись отношения, так как после апдейтов приходится очень много править (спасибо но я лучше ручками). Выпилить его не составит труда (оставьте пустым до лучших времен).
Насчет YiiBoilerplate - не советую, так как проект мертв (да и есть свои проблемы).
Берите initializer - он основан какраз на boilerplate, поддерживается и развивается, и в нем исправлено большинство проблем boilerplate. Потратьте 1-2 дня на структуру приложения, выберите что вам именно нужно. Поверьте в будущем это время вернется с лихвой.