Пишу на CodeIgnitr'e небольшой движок. Никак не могу продумать, что писать в контроллере, а что в модели.
Структура таблицы страниц:
id | href | title | text | description | keywords | modules
Структура таблицы модулей:
пока не придумал...
- URI обрабатываю сам, в обход CI (есть причины). Страницы вытаскиваются из базы с условием WHERE `href` = { URI } (будем считать, что используется весь URI)
- Поле modules может содержать несколько имен модулей, разделенных | (т.е., на странице может быть включено несколько модулей).
- Каждый модуль представляет из себя класс. Складывать их буду в стандартной директории libraries фреймворка. Где создавать объекты пока не придумал. Можно сказать, это одна из основных проблем.
- Вид скорее всего будет один для всего сайта, иначе потом появляются мысли о мультишаблонности, потом о мультиюзеровости с привелегиями, потом чанки и сниппеты из админки, хотя этого всего не требуется) Так что важно вовремя остановиться.
Как вижу все я:
Основной контроллер - Main
Точка входа - конструктор Main'а.
В конструкторе получаем текущую страницу, опираясь на URI.
Если БД вернула не пустой результат,
-собираем массив $data для передачи в вид.
-смотрим, как у страницы дела обстоят с модулями. Вот в этом месте я туплю.
Ход мыслей:
- Разбиваем строку explod'ом, получаем массив.
- В цикле проверяем, есть ли соответствующее название в таблице модулей в БД.
- Если есть - берем имя этого модуля, проверяем, объявлен ли одноименный метод.
- Если объявлен, вызываем метод.
- ...
Во-первых, по-моему, какие-то костыли. Во-вторых, у меня не MVC получается, а VC.
У кого какие есть мысли по этому поводу? Помогите, уже мозг не раз вскипятил, и нифига толку.
Спасибо!