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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите с MVC

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Vinyl
Отправлено: 06 Мая, 2013 - 13:24:53
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




Всем доброго времени.
Пишу на 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.
У кого какие есть мысли по этому поводу? Помогите, уже мозг не раз вскипятил, и нифига толку.
Спасибо!


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Мая, 2013 - 16:55:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Vinyl пишет:
Ход мыслей:
Vinyl пишет:
VC
Посмотри мне в подпись и успокойся, там то же самое.
 
 Top
Vinyl
Отправлено: 06 Мая, 2013 - 17:00:02
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




DeepVarvar пишет:
... и успокойся
Ох, не про меня это))

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


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
caballero
Отправлено: 06 Мая, 2013 - 17:00:04
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Никак не могу продумать, что писать в контроллере, а что в модели.

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



Как говорится в известном анекдоте - тебе надо ехать или шашечки? Иными словами - тебе надо сайт cделать или MVC? Делай чтоб работало - какая разница как там что будет называться.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Vinyl
Отправлено: 06 Мая, 2013 - 17:00:46
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




caballero, понял. Спасибо, друзья.


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« CMS и фреймворки »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB