Champion, тоже самое. (Добавление)
При чем если стереть содержимое .htaccess - все равно по http://dev/index (именно так, без расширения php) - показывается вывод index.php. Это как вообще?
При этом захожу по URL'ам http://dev/index - показывается вывод index.php, а если http://dev/sawf, или любая другая последовательность букв/цифр после домена - говорит, что нет такой страницы.
Но ведь по идее любой запрос должен приходить к файлу index.php в вставляться в $_GET['route']?
Вообще не понимаю в чем ошибка.
1 Пользователь запрашивает урл и попадает в роутер
2. Роутер выбирает какой контроллер соответствует урлу, какой метод контроллера и какие параметры передать в этот метод контроллера
3. В методе контроллера выбирается нужная модель данных (если она нужна, она может быть нужна, может быть не нужна, их может быть нужно несколько). Контроллер работает с этой моделью, делает все. что нужно, получает какие-то данные из нее.
4. Контроллер выбирает нужную вьюху и передет ей необходиные для отображения данные (их может и не быть вообще, например, отдаа 404 ошибки)
Вот теперь стало проясняться.
Только вот в каких на пример ситуациях контроллер может при получении данных от модели, опять обратиться к ней?
И еще как контроллер в итоге передает данные для вывода представлению, если, на пример, в представлении нужен вывод данных массивом (страница новостей, на пример)?
Viper, то есть контроллер выбирает к какой модели обратиться для обработки данных и логики приложения, далее модель после обработки возвращает результат контроллеру, а тот в свою очередь вызывает шаблонизатор и представление? Оо как все сложно
Спасибо, вроде бы понял, но осталось непонятно где работает (на какой стадии) шаблонизатор и зачем представлению нужно обращаться к контроллеру и к какому?
Перечитал порядка 10 статей на тему объяснения сущности MVC, и в частности с примерами реализации на PHP, но кажется, не до конца понимаю.
Нарисовал схему как я понимаю данный паттерн - пожалуйста, раскритикуйте и поправьте, если что не так.
Конкретно что мне сейчас не понятно все еще:
1. Где я потерял в схеме view?
2. Что-то читал про "толстые контроллеры", и что это плохой подход к программированию, когда в контроллерах идет обработка и выборка из базы и пр. Правда ли?
caballero, спасибо, попытаюсь реализовать до конца данный концепт. Я немного измененную суть моего концепта, описанного в первом сообщении прорабатывал на стадии "каракули в тетрадке аля проектирование", но счел данный способ нелогичным, обратное мнение пришло сейчас только.
caballero, спасибо, видимо прощелкал этот момент в ООП. (Добавление)
Вообще как подход с написанию фреймворка только для себя (изначально так задумывалось) - для более быстрой разработки и последующей доработки сайтов клиентских?
Т.е. создается объект главный - page, далее создаются и рендерятся все блоки, при чем если в блоке есть вложеные блоки, там происходит так же, только за главный объект уже выступает блок-родитель, далее рендерится (выводится на экран просто) что получилось в итоге, ибо каждый блок когда рендерит возвращает объекту-родителю html код.