Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите с MVC
Форумы портала PHP.SU » » CMS и фреймворки » Помогите с MVC

Страниц (1): [1]
 

1. Vinyl - 06 Мая, 2013 - 13:24:53 - перейти к сообщению
Всем доброго времени.
Пишу на CodeIgnitr'e небольшой движок. Никак не могу продумать, что писать в контроллере, а что в модели.

Структура таблицы страниц:
id | href | title | text | description | keywords | modules

Структура таблицы модулей:
пока не придумал...


  • URI обрабатываю сам, в обход CI (есть причины). Страницы вытаскиваются из базы с условием WHERE `href` = { URI } (будем считать, что используется весь URI)

  • Поле modules может содержать несколько имен модулей, разделенных | (т.е., на странице может быть включено несколько модулей).

  • Каждый модуль представляет из себя класс. Складывать их буду в стандартной директории libraries фреймворка. Где создавать объекты пока не придумал. Можно сказать, это одна из основных проблем.

  • Вид скорее всего будет один для всего сайта, иначе потом появляются мысли о мультишаблонности, потом о мультиюзеровости с привелегиями, потом чанки и сниппеты из админки, хотя этого всего не требуется) Так что важно вовремя остановиться.


Как вижу все я:

Основной контроллер - Main
Точка входа - конструктор Main'а.
В конструкторе получаем текущую страницу, опираясь на URI.
Если БД вернула не пустой результат,
-собираем массив $data для передачи в вид.
-смотрим, как у страницы дела обстоят с модулями. Вот в этом месте я туплю.

Ход мыслей:

  1. Разбиваем строку explod'ом, получаем массив.

  2. В цикле проверяем, есть ли соответствующее название в таблице модулей в БД.

  3. Если есть - берем имя этого модуля, проверяем, объявлен ли одноименный метод.

  4. Если объявлен, вызываем метод.

  5. ...



Во-первых, по-моему, какие-то костыли. Во-вторых, у меня не MVC получается, а VC.
У кого какие есть мысли по этому поводу? Помогите, уже мозг не раз вскипятил, и нифига толку.
Спасибо!
2. DeepVarvar - 06 Мая, 2013 - 16:55:41 - перейти к сообщению
Vinyl пишет:
Ход мыслей:
Vinyl пишет:
VC
Посмотри мне в подпись и успокойся, там то же самое.
3. Vinyl - 06 Мая, 2013 - 17:00:02 - перейти к сообщению
DeepVarvar пишет:
... и успокойся
Ох, не про меня это))

Я просто не до конца понимаю концепцию MVC, хотя читал не одну статью за последние дни. И не работал-то с ней толком. Не пойму, зачем модели нужны, если все прекрасно в контроллере делается. Да и таки-повторюсь, мой алгоритм больше напоминает хромого индуса.
4. caballero - 06 Мая, 2013 - 17:00:04 - перейти к сообщению
Цитата:
Никак не могу продумать, что писать в контроллере, а что в модели.

Цитата:
Во-вторых, у меня не MVC получается, а VC.



Как говорится в известном анекдоте - тебе надо ехать или шашечки? Иными словами - тебе надо сайт cделать или MVC? Делай чтоб работало - какая разница как там что будет называться.
5. Vinyl - 06 Мая, 2013 - 17:00:46 - перейти к сообщению
caballero, понял. Спасибо, друзья.

 

Powered by ExBB FM 1.0 RC1