Проект выполнен на базе Yii2 Advanced, PHP 8.4, MySQL 8.4.
Реализованы модули: Города, Отзывы, Пользователи.
- Главная страница: приветствие + определение города по IP.
- Если город определён → вопрос «Ваш город — Ижевск?» (Да/Нет).
- Если город не определён → список всех городов с отзывами (сортировка А–Я).
- Сессия выбора города: хранится 2 часа, после чего сбрасывается.
- Отзывы:
- Отображаются только для выбранного города.
- Неавторизованный пользователь видит текст и ФИО автора (без контактов).
- Авторизованный пользователь может создавать и редактировать отзывы.
- При клике на ФИО автора → всплывающее окно с email, телефоном и ссылкой на все отзывы автора.
- Создание/редактирование отзыва:
- Поля: название (≤100 символов), текст (≤255 символов), рейтинг (1–5), фото, выбор города (автокомплит, можно несколько или «для всех»).
- Если города нет в БД → подгружается через стороннее API (dadata).
- Регистрация пользователей:
- Поля: ФИО, email, телефон, пароль, повтор пароля, каптча.
- Пароль хранится безопасно (хэш).
- Подтверждение email через контрольную строку.
- Авторизация: только после подтверждения email.
- Прелоадер: при создании и редактировании через AJAX.
- Кэширование: используется стандартное кеширование Yii2 для запросов к БД.
- Yii2 Advanced
- PHP 8.4
- MySQL 8.4
- Bootstrap 5
- Composer
- PhpStorm
- PSR-12
idnamecreated_at
idreview_idcity_idtitletextratingimgauthor_idcreated_at
usernamefioemailphonepasswordcreated_at