Это пет-проект (интернет-магазин), разработанный на фреймворке Yii2. Проект включает в себя функционал для управления продуктами, категориями, корзиной и заказами, а также администраторский интерфейс для управления товарами и заказами.
-
Пользовательская часть:
- Просмотр продуктов и категорий.
- Добавление продуктов в корзину.
- Оформление заказа.
-
Админка:
- Управление заказами.
- Управление товарами.
- Управление категориями.
- Клонировать репозиторий:
git clone <URL-репозитория> cd yiiTraining
- Установить зависимости:
composer install
- Применить миграции:
php yii migrate
- Импортировать тестовые данные:
Используйте файл dump.sql из папки test_data для заполнения БД тестовыми данными. - Скопировать изображения:
Скопируйте папку images в папку web для
URL: /admin
Логин: admin
Пароль: qwerty123
Проект структурирован на основе архитектуры MVC (Model-View-Controller) и включает следующие компоненты:
-
views/: Папка, содержащая шаблоны для пользовательского интерфейса. В ней есть подкаталоги для различных разделов:
- cart/: Шаблоны, отвечающие за отображение корзины покупок.
- category/: Шаблоны для отображения категорий товаров.
- home/: Главная страница интернет-магазина.
- layouts/: Основные шаблоны (лейауты), которые обеспечивают общий стиль страниц.
- main/: Основные вьюхи для главного функционала приложения.
- order/: Шаблоны для оформления и отображения заказов.
- product/: Шаблоны для отображения информации о продуктах.
- site/: Шаблоны для общих страниц, таких как «О нас» и «Контакты».
-
modules/admin/views/: Папка с вьюхами для администраторского интерфейса, где администраторы могут управлять контентом сайта. Включает в себя:
- auth/: Вьюхи для аутентификации администратора, такие как страницы входа.
- category/: Шаблоны для управления категориями, где можно добавлять, редактировать и удалять категории товаров.
- order/: Шаблоны для управления заказами, позволяющие просматривать, редактировать и изменять статусы заказов.
- product/: Шаблоны для управления продуктами, включая возможность добавления новых продуктов, редактирования существующих и удаления.
- layouts/: Основные лейауты для административной панели, которые предоставляют единый стиль и структуру для всех страниц админки.
-
controllers/: Папка с контроллерами, которые обрабатывают HTTP-запросы и управляют взаимодействием между моделями и представлениями. Включает в себя:
- AppController.php: Базовый контроллер для общего функционала.
- CartController.php: Контроллер, обрабатывающий действия, связанные с корзиной.
- CategoryController.php: Контроллер для работы с категориями продуктов.
- HomeController.php: Контроллер для главной страницы.
- ProductController.php: Контроллер для управления продуктами.
- SiteController.php: Контроллер для общих страниц сайта.
-
modules/admin/controllers/: Контроллеры для администраторского интерфейса:
- AuthController.php: Контроллер для аутентификации администраторов.
- CategoryController.php: Контроллер для управления категориями в админке.
- OrderController.php: Контроллер для управления заказами.
- ProductController.php: Контроллер для управления товарами.
-
models/: Папка, содержащая модели, которые отвечают за работу с данными и бизнес-логику. Ключевые модели:
- Product.php: Модель для работы с продуктами.
- Category.php: Модель для работы с категориями.
- Order.php: Модель для работы с заказами.
- User.php: Модель для управления пользователями.
-
modules/admin/models/: Модели, используемые в администраторском интерфейсе:
- OrderProduct.php: Модель для работы с продуктами в заказах.
- CategorySearch.php и ProductSearch.php: Модели для поиска и фильтрации товаров и категорий.
- Аутентификация и авторизация реализованы в контроллере AuthController.php. Этот контроллер обрабатывает вход в систему и управление сессиями пользователей.
- Доступ к администраторскому интерфейсу ограничен с помощью проверки на наличие прав у пользователя. Все контроллеры в папке modules/admin/controllers/ требуют аутентификации, что предотвращает несанкционированный доступ к функционалу управления.
- PHP
- Yii2 Framework
- MySQL
- Bootstrap (в зависимости от настроек проекта)