Блог

Уроки Yii2. Как создать страницу и что такое View и Controller

5 years ago
18K
Sergei Nikonov

 

Всех приветствую, с вами Сергей Никонов. В моем новом уроке Yii2 я расскажу как создать страницу, а также вы узнаете что такое паттерн MVC, что такое контроллер (controller), что такое вид (view), что такое layouts в фреймворке Yii2 и многое другое. Эти уроки входят в курс Yii2

Смотрите видео как создать страницу используя Yii2 фреймворк

Часть 1

 

Часть 2

 

Что такое MVC

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

MVC расшифровывается как Model (модель) - View (вид) - Controller (контроллер). Model отвечает за связь и работой с данными, например модель User может извлекать информацию из базы данных, обновлять информацию в базе данных и так далее.

В этом уроке мы не будем работать с Model, а рассмотрим Controller и View. Controller является связующим звеном между Model и View и обрабатывает эти взаимодействия, а также входные данные. View, если говорить простыми словами, это визуальная часть вашего веб-приложения, которую видит пользователь сайта, иными словами - это файлы с html-версткой, которые подключаются в методы контроллеров.  

 

Что такое Controller (контроллер)

Контроллеры можно представить как интерфейсы между Models и Views. Для того, чтобы понять что такое контроллер, достаточно взглянуть на URL вашего локального сайта Yii2:

http://frontend.test/index.php?r=site%2Fabout

site - это название контроллера, а about - это метод в контроллере, который в Yii2 называется как Action.

Пример action страницы Yii2 about в контроллере SiteController:

 public function actionAbout()
 {
    return $this->render('about');
 }

Если вы удалите строчку return $this->render('about'); и напишите вместо нее:

echo 'Hello!';

перейдя на страницу About, вы увидите надпись hello. Вы даже можете вывести через echo html тэги, которые будут отображаться на странице about:

echo '<h1>Hello!</h1>';

 

Yii2 фреймворк. Как создать свою страницу.

Но так делать не нужно, так как это нарушает принцип MVC. Верстку необходимо выносить в отдельный файл.

 

Что такое View

Файлы с версткой, которые подключается в actions контроллеров называется Views (Виды). Все что видят пользователи вашего сайта - блоки, html-формы, кнопки, иными словами дизайн страницы описанный html и css является Views. Вы не должны помещать верстку ваших страниц напрямую в экшены контроллеров, а делать это нужно через специальные файлы view, затем эти файлы с версткой должны встраиваться в контроллеры:

 public function actionAbout()
 {
    return $this->render('about');
 }

Строчкой $this->render('about') в методе actionAbout контроллера SiteController рендерится (отрисовывается) View страницы About.

 

Как создать страницу в Yii2 фреймворке

Создать страницу используя фреймворк очень просто.

1. Перейдите в контроллер SiteController. Он находится в каталоге frontend - controllers и откройте файл SiteController.php.

2. Найдите и скопируйте action (метод) под названием actionAbout() и вставьте скопированный код ниже.

 public function actionAbout()
 {
    return $this->render('about');
 }

 public function actionAbout()
 {
    return $this->render('about');
 }

3. Переименуйте скопированный метод actionAbout() в actionHello() и в строчке $this->render('about') замените 'about' на 'hello'

 public function actionAbout()
 {
    return $this->render('about');
 }

 public function actionHello()
 {
    return $this->render('hello');
 }

4. Создайте файл hello.php в каталоге frontend - views и поместите в него следующий код:

<h1>Hello!</h1>
<button class="btn btn-danger">Action 1</button>
<button class="btn btn-success">Action 2</button>

5. Если вы настраивали локальные домены по урокам из курса Yii2 Фреймворк на сайте FructCode.com, перейдите по адресу:

http://frontend.test/index.php?r=site%2Fhello

 

и если вы все сделали верно, вы должны увидеть такую страницу:

Уроки Yii2. Как создать страницу.

 

Обратите внимание на кнопки, которые мы создали и их дизайн. CSS-классы, которые мы использовали, принадлежат Bootstrap 3. Но откуда Yii2 знает про Bootstrap 3? Дело в том, что в фреймворк Yii2 по умолчанию встроен Bootstrap 3 и вы можете сразу использовать все возможности верстки сетки и компоненты Bootstrap 3 в вашем проекте Yii2. А если вы незнакомы с Bootstrap 3, но хотите научиться им пользоваться, обязательно пройдите мой интерактивный курс Bootstrap 3 на сайте FructCode

 

Как вы видите создать страницу с помощью Yii2 фреймворка очень просто. Фреймворк Yii2 очень функциональный, но для того, чтобы знать как им пользоваться, вам необходимо знать что такое объектно-ориентированном программирование (ООП) и уметь программировать применяя парадигму ООП. Объектно-ориентированное программирование на первый взгляд кажется очень сложным и я постарался простым языком на примерах рассказать основы объектно-ориентированного программирования в моем интерактивном курсе PHP и MySQL

 

Кроме ООП вам необходимо изучить структуру фреймворка Yii2 Advanced, а также ключевые концепции Yii2, такие как:

- Components

- Properties

- Events

- Dependency Injection Container

- Behaviors

- Service Locator

 

И другие. Также вам необходимо уметь взаимодействовать с базой данный с помощью фреймворка Yii2 и знать следующее:

- Query Builder

- Migrations

- Active Record

- Database Access Objects

- Data caching

 

Уметь работать с Assets, Widgets и создавать собственные виджеты Yii2 и многое другое. Всю эту информацию вы можете найти в официальной документации фреймворка Yii2 и я очень рекомендую всегда обращаться к первостепенному источнику при изучении и работе с любыми технологиями и фремворками, тем не менее, если вы хотите быстро изучить ключевые моменты использования фреймворка Yii2, я рекомендую пройти мой курс Yii2 Фреймворк на сайте FructCode.com в котором я на простых примерах показываю как создать веб-сайт с помощью фреймворка Yii2. 

 

С уважением, Сергей Никонов

P.S. Актуальные версии моих курсов, а также новые курсы находятся только на моем сайте FructCode.com.