Работающее демо · подготовлено 7 сентября 2026
Symfony API System
API расчёта цены и тестовой оплаты с интерактивным разбором суммы. Исправлены модель товара, миграции, валидация и арифметика скидок.
01 / Задача
Цена, налог и купон с понятным расчётом
Клиент должен получить воспроизводимую итоговую цену, а ошибочный налоговый код, товар или купон — понятный отказ.
Для кого: Разработчики checkout и API расчёта стоимости.
Мой вклад
- Symfony-контракты расчёта и покупки, валидация и платёжный слой.
- Восстановление модели Product и схемы БД, переход на Symfony 6.4/PHP 8.4.
- Калькулятор целыми центами, unit-тесты и интерактивный API-экран.
Интерфейс в работе
Сценарии, детали и состояния02 / Технологии
Стек и его роль
Symfony Validator
Проверка DTO, налогового кода и контрактов.
PHP / PriceCalculator
Целочисленный расчёт, округление и ограничение скидки.
Doctrine / MySQL
Товары, страны, купоны, миграции и воспроизводимый seed.
03 / Решения
Как устроен проект
- Сначала рассчитывается налог, затем скидка; итог ограничен снизу нулём.
- Внутренняя арифметика использует целые центы и округление half-up.
- Покупка заново рассчитывает сумму на сервере, не доверяя результату из браузера.
04 / Проверка
Что попробовать
- Рассчитайте цену с налогом и процентным купоном: пример даёт 116,56 €.
- Проверьте фиксированную скидку и разбивку суммы.
- Введите неправильный код, неизвестный купон или товар.
- Выполните успешную тестовую оплату и отклонённый платёж 402.
Подтверждённые результаты
- Сохранено 12 содержательных кадров фактического интерфейса.
- Дата, сценарий и версия указаны у каждого кадра.
- Максимум RAM контейнеров в коротком тесте: 41.34 MiB. Общие службы учитываются отдельно; магазин включает свою БД.
- Измерено 6 повторений сценария; медиана 306.0 мс, максимум 2364 мс. Время включает браузер и HTTPS; методика и ограничения приложены.
Границы и ограничения
- Налоги и купоны — учебные справочники; это не налоговая консультация.
- PayPal/Stripe заменены детерминированными моками; внешних списаний нет.
- Каталог read-only, история десяти запросов живёт в памяти вкладки.
Нужны детали реализации?
Архитектура, code-map, API, проверка, развёртывание и реальные измерения.
Открыть документацию →Скачать материалы ↓