Содержание цикла статей:
- 1. Вводная статья
- 2. Маршрутизация, контролеры, экшены, шаблоны
- 3. Модели. Элементарные действия с базой данных
- 4. Проектируем блог
- 5. Исправление неточностей структуры
Этой статьей я начну цикл публикаций, в которых попытаюсь как можно понятней и подробней рассказать об ООП и MVC. Сначала я планировал написать несколько статей конкретно по объектно-ориентированному программированию, но через некоторое время, продумывая структуру статей, я решил не зацикливаться на ООП. Намного злободневней и актуальней является тема паттерна MVC в ООП. Поэтому статьи будут акцентировать внимание не столько на ООП, сколько на подходе MVC в ООП.
Но это не значит, что тема объектно-ориентированного программирования будет рассмотрена вскользь. Дело в том, что в настоящее время большинство сайтов разрабатывается с использованием паттерна MVC. А сам паттерн непосредственно построен на ООП.
Наверно, несколько моих первых предложений вас только запутали :). Перечитав первые абзацы, я понял, что не так просто будет объяснить все выше перечисленное, опираясь только на теорию, и приводя непонятные термины и их расшифровку. Поэтому было принято решение написать готовый рабочий проект на MVC и подробно описывать все выполняемые действия.
Итак приступим.
Начнем с постановки задачи. Правильно поставленная задача и проработка многих мелких аспектов на этапе проектирования проекта одна из важных составляющих в разработке. Это относится не только к сайтостроению, но и к любому другому рабочему процессу.
Давайте создадим простой блог, который будет работать на структуре MVC. Блог должен иметь главную страницу, несколько разделов для статей, сами статьи; пользователей, которые смогут регистрироваться/авторизовываться и оставлять комментарии. Также блог должен иметь панель управления, через которую администратор блога сможет без труда управлять статьями, разделами, комментариями и пользователями. На дизайн блога обращать особого внимания не будем, поскольку это тестовый проект и основная цель – это научиться работать с ООП и MVC.
Задача в целом понятна, но прежде чем приступать к реализации все же стоит уделить немного времени на теорию. Что же вообще такое MVC и с чем его едят? Если расшифровать аббревиатуру MVC, то многое сразу становиться понятно: Model-View-Controller.
Паттерн MVC позволяет разделить данные, представление и обработку действий пользователя на три части:
Model — модель предоставляет данные, а также методы для работы с данными. В моделе находится только логика для получения и обработки данных, она никак не связана с визуализацией.
View – представление отвечает за отображение – визуализацию.
Controller – контроллер обеспечивает связь между пользователем и системой. Он обрабатывает данные, полученные от пользователя, в ходе работы контроллер может использовать данные и методы моделей, а также контролирует вывод данных посредством представления(view).
Самое явное отличие проектов, использующих в своей основе MVC, это то, что имеется только одна точка входа. Сайт работает по жестко заданной схеме: имеется одна точка входа – скрипт index.php, который обрабатывает все получаемы данные и на их основе строит структуру сайта.
Чтобы было более понятно, посмотрите на картинку, на ней схематично изображена схема работы сайта на MVC.
Для вводной статьи, думаю, что пищи для размышления достаточно. На этом первая статья закончена, в ближайшем будущем будет продолжение. В следующей статье уже появятся исходники, в которых уже наглядно будет продемонстрирована структура MVC.