Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Знакомство с 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.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.