В самом начале знакомства с Yii возникает один принципиальный вопрос «как все это работает?» и этот вопрос особенно часто возникает у тех, кто раньше разрабатывал сайты без использования фреймворков (Yii, Zend, CI и т.д.), а именно без использования схемы проектирования MVC (Model-view-controller/Модель-представление-контроллер).

Без использования модели MVC схема разработки большинства скриптов для сайтов выглядит следующим образом:

  1. Генерируем HTML код формы (часто с помощью JavaScript и других «украшательств») со ссылкой на PHP скрипт обработчик (<form action=’Script.php’>….</form>).
  2. Пишем скрипт обработчик, который получает данные от нашей формы (по методу POST или GET) и обрабатывает их так, как нам нужно (например записывает их в базу данных или передает другому скрипту в обработанном виде).

С использованием модели MVC схема разработки скриптов выглядит вот так:

  1. Создаем контроллер, который будет управлять всем процессом работы страницы (логикой работы скрипта, обращениями к базе данных через созданные «Модели» и показом данных пользователю через «Представления»).
  2. Создаем модель, которая будет являться «прослойкой» между базой данных и контроллером. Под «прослойкой» я понимаю очень приятный (опять же на мой взгляд) интерфейс обращения к базе данных, к примеру с помощью модели вы можете изменить имя пользователя всего несколькими строчками:

    При использовании «Моделей» вы можете обращаться к записям в базе данных как к объектам в ООП. Для того чтобы изменить имя пользователя без моделей (и MVC) вам необходимо подключиться к бд (mysql_connect имею ввиду) и отправить запрос в базу данных, после чего код станет похож на «мешанину» из PHP и SQL. Хоть в итоге получится тоже самое, при первом подходе (с MVC) все будет выглядеть «читабельно», да и количество кода будет намного меньше, особенно при операциях поиска и получения записей из БД. Обычно модели соответствуют таблицам в базе данных (article, book, users и т.д.) и различным формам (например форме отправки сообщений в техническую поддержку).
  3. Создаем представление, т.е. создаем HTML код, в котором прописаны формы, поля, кнопки, данные из БД и т.д. — все то, что должен увидеть пользователь (посетитель страницы). Yii предоставляет широкий выбор виджетов для отображения информации — уже готовых шаблонов вывода записей из БД и модулей, которые все сделают за вас — CGridView, CListView и т.д.

Когда я переходил со своих CMS (их приходилось писать практически заново для каждого «большого» сайта заказчика) на Yii Framework именно это было самой большой проблемой, но после того как я разобрался с этой схемой мне стала понятна вся прелесть использования фреймворков и модели MVC. Как работает MVC можно прочитать на множестве сайтов и в википедии, но я еще раз это сделаю на примере Yii (как мне это видится). Давайте создадим простую страницу добавления пользователей в базу данных, на примере этого простого скрипта вы поймете (надеюсь) как все это работает.

Вот наш план работы:

  1. Создать таблицу для пользователей — user.
  2. Создать модель на основе таблицы users, через которую контроллер будет взаимодействовать с базой данных.
  3. Создать контроллер (в частности экшин для страницы) в котором будет описана логика работы скрипта.
  4. Создать представление, которое будет показывать пользователю результаты работы.

1. Создаем таблицу для пользователей.

2. Создаем модель User на основе таблицы users в базе данных.

3. Создаем экшин actionAddUsers.

4. Создаем представление.

Примерно так выглядит схема разработки большинства скриптов (создаете таблицу в базе данных и модель к ней, прописываете логику в экшене контроллера и формируете представление).

Добавить комментарий