Files
new.rybstock.ru/docs/ШАГ_3_PHP_КЛАССЫ.md
2026-06-04 00:27:17 +03:00

108 lines
4.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Шаг 3. Первые PHP-классы и вывод данных
## Что сделано
Созданы первые классы для работы сайта на чистом PHP:
- `app/Controllers/HomeController.php`
- `app/Repositories/BaseRepository.php`
- `app/Repositories/CategoryRepository.php`
- `app/Repositories/ProductRepository.php`
- `app/Repositories/ProductVariantRepository.php`
- `app/Repositories/SettingRepository.php`
Главная страница больше не содержит бизнес-логику напрямую. Теперь `public/index.php` вызывает `HomeController`, а контроллер получает данные через репозитории.
Также в базовый layout добавлены:
- meta title;
- meta description;
- meta keywords;
- хлебные крошки;
- кнопка "Вернуться назад".
## Что выводится на главной
Главная страница теперь показывает:
- статус подключения к MariaDB;
- категории из таблицы `categories`, строго по дереву старого сайта;
- вложенность категорий до третьего уровня;
- каталог товаров прямо на главной странице;
- настройки доставки из таблицы `site_settings`;
- блок популярных товаров из опубликованных товаров и фасовок.
- градации выгодной цены: базовая цена, цена от 20 000 руб. наличными, цена от 50 000 руб. наличными.
Если таблицы еще не установлены, сайт не падает, а показывает сообщение с подсказкой.
## Что добавлено в админку
`admin/index.php` теперь показывает стартовую сетку разделов будущей панели:
- Товары;
- Категории;
- Фасовки;
- Заказы;
- Промокоды;
- Акции;
- Популярные товары;
- Отзывы;
- Настройки;
- Прайс-лист.
Это пока не полноценная админка, а основа навигации для следующих шагов.
## Что добавлено для цен
В `promocodes` добавлены поля:
- `show_in_price_tiers`;
- `price_tier_label`.
Создан `app/Services/PriceTierService.php`, который считает отображаемые цены для карточки товара:
- базовая цена;
- минус 5% при заказе от 20 000 руб. за наличный расчет;
- минус 7% при заказе от 50 000 руб. за наличный расчет.
Это не отменяет ввод промокода в корзине. Это только понятная подсказка в каталоге, чтобы человек заранее видел выгоду крупного заказа.
## Что нужно проверить
1. Если база еще не установлена, открыть `/install.php?token=rybstock-local-install`.
2. После установки открыть главную страницу.
3. На главной должны появиться стартовые категории из `database/seed.sql`.
4. Открыть `/admin/` и проверить стартовые разделы админки.
Стартовые категории:
- Рыба;
- Рыбное филе;
- Рыбные стейки;
- Охлажденная рыба;
- Малосольная рыба;
- Копченая рыба;
- Вяленая рыба;
- Морепродукты;
- Фрукты, овощи, ягоды, грибы;
- Икра;
- Бакалея;
- Полуфабрикаты;
- Мясная гастрономия;
- Мясо;
- Сыры;
- Молочная продукция.
Важно: названия категорий уже приведены к старому дереву. Для полного сохранения индексации еще нужны точные старые URL категорий и товаров. В схеме для этого предусмотрены `legacy_path` и таблица `redirects`.
## Следующий шаг
Шаг 4:
1. Сделать базовый роутинг для страниц сайта.
2. Создать страницу полного каталога.
3. Вывести категории и товары из базы.
4. Подготовить первые формы админки для категорий и товаров.
Перенос товаров вынесен в отдельный документ: `docs/ПЛАН_ПЕРЕНОСА_ТОВАРОВ.md`.