Работающее демо · подготовлено 7 сентября 2026

Symfony API System

API расчёта цены и тестовой оплаты с интерактивным разбором суммы. Исправлены модель товара, миграции, валидация и арифметика скидок.

Исходное тестовое задание: сентябрь 2023. Обновление и демо: 7 сентября 2026.Версия 3b826a6f12 кадров интерфейса

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 / Проверка

Что попробовать

  1. Рассчитайте цену с налогом и процентным купоном: пример даёт 116,56 €.
  2. Проверьте фиксированную скидку и разбивку суммы.
  3. Введите неправильный код, неизвестный купон или товар.
  4. Выполните успешную тестовую оплату и отклонённый платёж 402.

Подтверждённые результаты

  • Сохранено 12 содержательных кадров фактического интерфейса.
  • Дата, сценарий и версия указаны у каждого кадра.
  • Максимум RAM контейнеров в коротком тесте: 41.34 MiB. Общие службы учитываются отдельно; магазин включает свою БД.
  • Измерено 6 повторений сценария; медиана 306.0 мс, максимум 2364 мс. Время включает браузер и HTTPS; методика и ограничения приложены.

Границы и ограничения

  • Налоги и купоны — учебные справочники; это не налоговая консультация.
  • PayPal/Stripe заменены детерминированными моками; внешних списаний нет.
  • Каталог read-only, история десяти запросов живёт в памяти вкладки.

Нужны детали реализации?

Архитектура, code-map, API, проверка, развёртывание и реальные измерения.

Открыть документацию →Скачать материалы ↓