<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

После прохождения курса Вы без труда сможете создавать любые сайты с использованием фреймворка Yii, причём делать это будете быстро и качественно.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Подход MVC (Model-View-Controller)

Подход MVC (Model-View-Controller)

В предыдущей статье мы с Вами обсуждали проблему связки PHP и HTML. Я в конце той статьи сказал, что есть некоторые решения, которые немного исправляют ситуацию, однако, они не без недостатков. Так вот самый популярный из них - это подход MVC (Model-View-Controller). И, на самом деле, данный подход является основой для всех остальных. Фактически, MVC ценен не своей "красотой решения", а прекрасной концепцией, к которой надо стремиться.

В основе MVC лежат 3 элемента: Модель, Шаблон и Контроллер. Давайте разберём каждый из них:

  • Шаблон (View) - это весь внешний вид страниц. Фактически, это набор HTML-файлов, каждый из которых отвечает за отдельную страницу. За Шаблон отвечает дизайнер.
  • Модель (Model) - это набор низкоуровневых функций. Например, по работе с базой данных, по аутентификации пользователей, по отправке e-mail сообщений и так далее. Другими словами, это служебные функции, реализация которых, вообще говоря, скрыта. За эту часть, безусловно, отвечает программист.
  • Контроллер (Controller) - это связующее звено между Шаблоном и Моделью. Сюда приходят данные из Шаблона (например, при отправке форм), сюда же приходит ответ от Модели, и именно Контроллер решает, какой шаблон выбрать. За Контроллер отвечает также программист.

На первый взгляд кажется, что это идеальная ситуация, так как мы, вроде бы, добились разделения работы программиста и дизайнера. Да и дизайн изменить легко, достаточно будет просто поменять Шаблон, никак не залезая в программную часть. Но, к сожалению, это далеко не так.

Предположим, нам надо вывести комментарии на страницу. Вот как это может выглядеть:

<?php
  require_once "model.php"; // Подключаем Модель
  $comments = getComments(); // Некая функция в Модели, возврающая двумерный массив с комментариями
  include "index.html"; // Вывод шаблона
?>

Вот кусок кода из index.html, где выводятся комментарии:

<?php
  for ($i = 0; $i < count($comments); $i++) {
    echo "<li><b>".$comments[$i]["name"].":</b> ".$comments[$i]["text"]."</li>";
?>

Остальная часть - это обычный HTML-код. Как видите, мы пытались избежать PHP-кода в Шаблоне, но у нас это не получилось. Простейший цикл завёл нас в тупик. Тоже самое будет, если потребуется какое-нибудь условие, и вновь без PHP не обойтись. Другой минус, не менее серьёзный, состоит в том, что именно Контроллер решает, какие блоки и выводить на странице. Хотя, что выводить, является задачей дизайнера, а не программиста.

Вывод из этого неутешительный - чистый MVC на практике применять нецелесообразно, но поскольку сама концепция отличная, то в дальнейшем мы с Вами будет развивать подход MVC.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (1):

brussens brussens 07.09.2012 08:54:05

Добавлю от себя: 1. На одну таблицу приходится одна модель. Т.е. за таблицу users отвечает модель Users? если есть связанные данные, например users.id и news.author.id, то тут описание связей в модели, например можно использовать InnoDB. 2. MVC стоит использовать , если вы понимаете, для чего этот паттерн. Если нет понимания, то читать про паттерны) P.S.: статья очень хорошая, в своё время пренебрегал MVC, но когда начал использовать Yii осознал всю прелесть этого паттерна)

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.