Знакомство с Yii
Yii — фреймворк, то есть готовый каркас сайта на PHP: в нём уже решены типовые задачи вроде работы с базой данных, форм с проверкой и таблиц с сортировкой. Курс посвящён Yii 2 (версии 2.0.x) и шаблону проекта basic — самому простому варианту для одного сайта.
Установка
Нужны PHP 8 и Composer — программа, которая скачивает библиотеки PHP. Проект создаётся одной командой:
composer create-project --prefer-dist yiisoft/yii2-app-basic blog
cd blog
php yii serveПервая команда скачивает шаблон в папку blog, последняя запускает встроенный сервер. Откройте http://localhost:8080 — появится стартовая страница с меню Home, About, Contact и Login.
Папки проекта
blog/
├── config/ настройки: web.php, db.php, console.php, params.php
├── controllers/ контроллеры — код страниц
├── models/ модели — данные и правила их проверки
├── views/ шаблоны страниц
├── web/ корень сайта: index.php, css, картинки
├── migrations/ изменения структуры базы данных
├── commands/ консольные команды
├── assets/ описания наборов стилей и скриптов
├── mail/ шаблоны писем
├── runtime/ журналы и кеш, создаются при работе
├── vendor/ библиотеки, установленные Composer
└── yii файл для запуска консольных командЧаще всего вы будете работать в controllers, models и views. Папки vendor и runtime руками не правят.
Пространство имён app
Все классы проекта лежат в пространстве имён app, и оно повторяет путь к файлу: файл controllers/SiteController.php содержит класс app\controllers\SiteController, файл models/ContactForm.php — класс app\models\ContactForm. Благодаря этому Yii находит классы сам, подключать файлы вручную не нужно.
Первая страница
Создайте вручную файл controllers/HelloController.php:
// controllers/HelloController.php
namespace app\controllers;
use yii\web\Controller;
class HelloController extends Controller
{
public function actionIndex(): string
{
return 'Привет, Yii!';
}
}Откройте http://localhost:8080/index.php?r=hello/index — на странице появится строка «Привет, Yii!». Параметр r — это маршрут: имя контроллера и имя метода без приставки action. Регистрировать страницу нигде не понадобилось.
Панель отладки
Внизу каждой страницы видна полоса с логотипом Yii — панель отладки. Она показывает время выполнения, запросы к базе данных и записи журнала. Щелчок по ней открывает подробности. Панель работает только в режиме разработки.
О версиях
Существует и Yii 3 — набор отдельных пакетов с другим устройством. Большинство работающих проектов написано на Yii 2, поэтому всё дальнейшее относится именно к нему.
Частая ошибка
Команды php yii ... выполняют в папке проекта — там, где лежит файл yii. Если запустить команду из другой папки, PHP ответит Could not open input file: yii. Сначала перейдите в проект командой cd blog.