Оглавление
Yii
Быстрый фреймворк с Active Record, генератором кода Gii, готовыми виджетами таблиц и форм.
1.Начало работы
- Знакомство с YiiЧто такое Yii 2, как установить проект, какие в нём папки и как сделать первую страницу.
- Входной скрипт и настройкиКак запрос попадает в приложение: файл web/index.php, настройки config/web.php и компоненты Yii::$app.
- Контроллеры и действияГде лежат контроллеры Yii, как назвать класс и действие, как действие получает параметры из адреса.
- Маршруты и красивые адресаКак включить адреса без index.php, описать правила в urlManager и строить ссылки через Url::to.
- Запросы и ответыКак прочитать данные запроса через Yii::$app->request и вернуть перенаправление, JSON или ошибку 404.
- ШаблоныГде лежат шаблоны Yii, как вывести шаблон из контроллера, передать в него данные и безопасно их показать.
- Макеты и наборы ресурсовОбщая рамка страниц в views/layouts/main.php и подключение стилей и скриптов через класс AppAsset.
2.База данных
- Подключение к базе данныхКак создать базу, записать параметры подключения в config/db.php и выполнить первый запрос.
- МиграцииКак создать таблицу кодом: команда migrate/create, методы safeUp и safeDown, типы столбцов, выполнение и откат.
- Active RecordКласс модели для таблицы: где он лежит, как найти, создать, изменить и удалить запись.
- Построение запросовУсловия where, сортировка и ограничение выборки, построитель Query, параметры в SQL и транзакции.
- Связи между моделямиСвязи hasOne и hasMany в моделях Yii, обращение к связанным записям и загрузка заранее через with.
- Постраничный вывод и сортировкаКлассы Pagination и Sort, виджет LinkPager и поставщик данных ActiveDataProvider.
- Генератор кода GiiКак открыть Gii, создать модель по таблице и готовые страницы управления записями.
3.Формы и данные
- Модели и правила проверкиМетод rules в модели Yii: встроенные проверки, свои сообщения, собственное правило и вывод ошибок.
- Формы с ActiveFormКак построить форму по модели виджетом ActiveForm, принять её в контроллере и показать ошибки.
- Виджеты данныхГотовые виджеты GridView, ListView и DetailView: таблица с сортировкой, список карточек и страница одной записи.
- Сессии и flash-сообщенияКак хранить данные посетителя между запросами через Yii::$app->session и показать одноразовое сообщение.
- Загрузка файловКак принять файл из формы: класс UploadedFile, правило file, поле fileInput и сохранение в папку web/uploads.
- Поведения и фильтрыМетод behaviors: TimestampBehavior для дат в модели и VerbFilter для ограничения методов запроса в контроллере.
4.Пользователи и доступ
- АутентификацияВход и выход пользователя: интерфейс IdentityInterface, модель User с таблицей, хеш пароля и компонент Yii::$app->user.
- Авторизация: фильтр AccessControlКак закрыть действия контроллера от гостей фильтром AccessControl и проверить, что статью меняет её автор.
- Роли и разрешения (RBAC)Основы RBAC в Yii: компонент authManager, создание ролей и разрешений, проверка через Yii::$app->user->can.
5.Развитие проекта
- REST APIКак отдать статьи в формате JSON: контроллер ActiveController, правило UrlRule и выбор полей ответа.
- Консольные командыКак написать свою команду для php yii: папка commands, аргументы и параметры, запуск по расписанию.
- КешированиеКомпонент Yii::$app->cache: как сохранить результат тяжёлого запроса, кешировать запросы к базе и часть шаблона.
- Отправка почтыКомпонент Yii::$app->mailer: настройка, письмо из шаблона в папке mail и проверка писем без отправки.
- Переводы и языкиПеревод интерфейса через Yii::t и файлы в папке messages, подстановка значений и вывод дат по правилам языка.
- Журнал и обработка ошибокЗапись сообщений через Yii::error и Yii::info, настройка компонента log и собственная страница ошибки.
- Размещение на сервереКак перенести проект Yii на сервер: режим prod, константы YII_DEBUG и YII_ENV, корень сайта web, права на папки.