PHP.SU

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

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

> Найдено сообщений: 1
Кот Бегемот Отправлено: 21 Июля, 2012 - 08:55:30 • Тема: Урок №19 - Немного о паттернах • Форум: Уроки php

Ответов: 99
Просмотров: 5273
Свой вопрос начну с краткой предыстории. Наверняка у кого-то тоже есть подобные эволюционные шаги развития проектов и было бы интересно обсудить.
Есть давно начатый написанный на чистом РНР (без фреймворков и цмс) сайт. И т.к. сайт "свой", а не заказчика, который может проверить качество кода, то все внимание уделялось наращиванию новых фич на сайте, а сам код писался в стиле "лишь бы работало задуманное".

В итоге получилась ТАКАЯ каша, что сейчас стало очевидно: дальнейшее развитие проекта требует просто-таки колоссальных затрат. Код приходится править во многих местах, вставки некоторых простых элементов (например, валидация) превращаются в муку.

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

MVC. Думаю, что если уж переходить, то на какую-то выработанную сообществом модель. Пытаюсь уложить в голове страницы своего проекта на эту модель и что-то пока не укладывается.

Вот и вопрос: допустим, на странице есть блок вывода курса валют, блок стоимости топлива и блок заголовков новостей по выбранной тематике.
Как эту страницу увязать с моделью мвц? Ведь получается, что для создания этой страницы "трудятся" целых три контроллера и вьюхи: топливо, курсы валют и новости.

Как в таком случае строить правильную архитектуру MVC? Не хочу строить очередные костыли и грабли у себя на сайте, а понять, как реализуются подобные вещи правильно.

Мне нравится идея единого входа (с удовольствием откажусь от тучи рерайт правил в хтаксес), далее парсится урл и передается определенному контроллеру вместе с параметром, если есть. Но вот как быть, если страница собирается из нескольких блоков? Какова логика построения такой страницы в модели MVC? Это первый вопрос

Второй вопрос касается вида. Как грамотно и по правилам модели мвц построить представления, если к примеру, для использования одного блока в хидер надо включить джаваскрипт, который нужен только для части функционала и на определенных страницах?
Т.е. у меня есть логика. И для представления, допустим, картинок - я использую джейкарусель. Смысл этот джс включать во все страницы, если он только на странице просмотра фоток? И вот, модель выбирает нужные данные, обрабатывает и наконец-то данные попадают в вид. В виде есть пара дивов, куда эти данные в виде переменных попадают. Но как добавить в хидер джс? Правильно, я имею в виду.
Предусматривает ли данная модель что-то типа "хуков", как в друпале, когда можно изменить что-то, что делается другой частью функционала?

Вот если я это пойму - тут же начну переход на модель MVC Улыбка

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB