Простой сайт на Yii

В этой статье попробуем разобраться как устроены приложения на фоеймвлоке Yii. Затем модифицируем стандартный пример "basic", создав ещё одну страницу с простейшим выводом информации из параметра запрова. Но сначала взглянем и опишем структуру файлов в корневом каталоге фреймворка:
composer.json - сценарий для Composer-а, содержит описание приложения
config/ - конфигурационные файлы
   console.php - конфигурация консольного приложения
   web.php - конфигурация Web приложения
commands/ - классы консольных команд
controllers/ - контроллеры
models/ - модели
runtime/ - файлы, которые генерирует Yii (логи, кэш и т.п.)
vendor/ - содержит пакеты Composer-а и сам фреймворк Yii
views/ - представления
web/ - корневая директория приложения. Доступна через Web
   assets/ - статичные файлы (js, css)
   index.php - точка входа в приложение Yii
yii - скрипт выполнения консольного приложения Yii
Такое разбиение по папкам соответствует логике архитектуры MVC. Далее в статье мы будем плотно работать файлами в папках "controllers" и "views".

Создание простейшего сайта

Для создания простейшего приложения на Yii нам потребуется запрограммировать две вещи: "действие контроллера" и "представление". Они будут работать так:
  1. Приложение обработает запрос и выполнит нужное "действие контроллера".
  2. Действие контроллера отобразит "представление" пользователю.
Запрограммируем эти два пункта по порядку.

Создание действия контроллера

После установки Yii был создан файл controllers/SiteController.php. В нём находится одноимённый класс, который вызывает представления. К примеру, там есть метод "actionAbout", который показывает содержание страницы с информацией "о сайте" из коробочного примера:
/* Displays about page */
public function actionAbout(){
   return $this->render('about');
}
Воспользуемся им, скопировав и модифицировав, добавив в класс контроллера ещё один публичный метод. В него будет входить только вызов одного метода "render":
public function actionMouse($animal = 'мыши'){
   return $this->render(
      'mouse', 
      ['text' => 'Тише, ' . $animal . ', кот на крыше!']
   );
}
В названии метода мы сохранили приставку "action", потому что Yii использует её чтобы распознавать методы-действия и обычные методы. Часть названия после "action" воспринимается как идентификатор действия (после измнения до нижнего регистра: если метод "actionMouse", то идентификатор "mouse").
В метод "render" передаётся название представления и массив с параметрами. Результат отображения передаётся через "return" в приложение, а затем пользователю.

Создание представления

Теперь сделаем представление. То есть оформим страницу, которая будет выводиться при нашем запросе. Для этого необходимо создать файл по адресу views/site/mouse.php.
При вызове метода "render" из действия, он начинает искать PHP файл по адресу views/ID_контроллера/имя_представления.php. В нашем случае контроллер называется "Site" (первая часть называния из "SiteController"), а представление называется "mouse" (вторая часть в нижнем регистре из "actionMouse")
Содержание файла будет таким:
<?php
use yii\helpers\Html;
?>
<?= Html::encode($text) ?>
При вызове страницы нашего приложения без параметров будет показана всего одна строка "Тише, мыши, кот на крыше". Но как можно заметить по коду метода "actionMouse", он может принимать параметр "$animal". предполагается, что этот параметр может быть передан пользователем, а следовательно необходимо экранировать все HTML небезопасные символы в нём, чтобы избежать XSS атаки.

Для начала попробуем запустить наше приложение без параметров. Для этого обратимся к странице /index.php?r=site/mouse. Параметр "r" в строке адреса зарезервирован в Yii для указания контроллера, который обрабатывает запрос. А через слеш "/" (он же символ "%2F") указывается действие.

На странице по этому адресу можно увидеть текст, обрамлённый шапкой и футером от стандартного сайта примера: Простейшая страница сайта на фреймворке Yii Теперь испытаем вывод пользовательских данных, полученных через URL строку параметром. Для этого обратимся к странице /index.php?r=site/mouse&animal=котята. Результат будет таким: Использование параметра из адреса страницы на фреймворке Yii Таким образом мы создали простейшее приложение (страницу сайта) на Yii.
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Cмотрите другие статьи:
Была ли статья полезной?
Была ли эта статья полезна? Есть вопрос?
хостинг для сайтов
Закажите недорогой хостинг Заказать

всего от 290 руб

⇡ наверх