[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: MVC-не(до)понимание
dearfriend
Добрый вечер!
Как начинающий писатель-php, начал разбирать mvc. Почитал хабр, форум, снова хабр. Но все ж остались вопросы.

1) для каждой ли страницы должен быть свои м-в-ц?
2) нужен ли мод_рерайт для системы с роутером, который разбирает URI?
3) данные берем из модели, контроллер направляет эти данные на определенный вид. В строке запроса получается что-то вроде: сайт.ру/название_контроллера_и_модели/метод_контроллера (поправьте, если затупил). Как будут передаваться гет-параметры?

И еще вопрос про ООП в целом:
4) по какому принципу создаются классы? Читаю "класс для работы с бд", "класс для авторизации", на соседней вкладке приводят пример с книгами (цена, название, год выпуска - свойства класса "книга"). Истина где-то рядом, но где ближе?

Заранее спасибо!
inpost
dearfriend
1. да. 1 страница = +3 файла.
2. Мод_реврайт? Он по желанию.
3. Контроллер получает данные, отправляет их на модель, модель возвращает готовый продукт обратно, и уже после выводится в виде. Собственно так, как ты написал. Строка будет выглядетЬ: site.ru/page и всё. В начале router, который подключит все 3 файла MVC.
4. По функционалу и логике. ООП не существовало бы без наследования одного класса другим. Значит функционал может быть единым, но разделенным по классам.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
kaww
1. 1 страница != 3 файла. . как бы страница -это контроллер или экшен контроллера, зависит от реализации. Который может использовать модель для получения данных, а может и не использовать, ну например, для статичной страницы. Так же не обязательно и представление (view). не используется рендер например при ответе на аякс запросы (хотя в некоторых реализациях формироваием аякс ответа занимается представление)
2. как уже сказал inpost - по желанию
3. в контроллер передаются параметры запроса, по необзодимости он берет данные из одели и отдает в представление
4. MVC - не обязательно ООП, поэтому как создавать классы по большому счету ваше дело.
Guest
inpost,kaww
Спасибо за ответ.

Цитата
Строка будет выглядетЬ: site.ru/page и всё. В начале router, который подключит все 3 файла MVC.


С этим ясно. В зависимости от 'page' роутер подключит нужные файлы.
С массивом ГЕТ все ж не возьму в толк. site.ru/catalog?category=wear&id=86 - так?
При этом catalog передается в роутер для подключения всего необходимого, а остальное пойдет в ГЕТ? Если нет, можно пример?

Насчет единого функционала: у меня есть класс, который умеет работать с базой данных, от него наследуются несколько классов, осуществляющих уже конкретные выборки с заданными параметрами. Но разделены эти классы как-то бездарно - все они используют методы родительского класса, в каждом из низ нет ничего, что кардинально отличало бы его от соседнего. Это и есть "по логике"?
ZSH
Цитата
В начале router, который подключит все 3 файла MVC.

немного не так, роутер подключит нужный контроллер, а контроллер уже будет решать какие модели и вьюхи ему нужны и вызывать их.

SlavaFr
Цитата (ZSH @ 12.04.2013 - 21:07)
немного не так, роутер подключит нужный контроллер, а контроллер уже будет решать какие модели и вьюхи ему нужны и вызывать их.

В общем есть разные имплиментации MVC .
В Zend_Framework к примеру задачей Router является только добыть и выдать информацию о том, какой контроллер, модуль и параметры имеются. Самой же инициализацией контролера и запуска самого контролера занимается Dispatcher.

_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.