Pau Garcia -> Katalogaktionen
Hergestellt mit
- PHP 8.1
- DDD
- Sechseckige Architektur (Ports und Adapter)
- CQRS
- Docker
- Testen mit PHPUnit
Hauptanweisungen
- Docker-Container starten:
docker-compose up -d
- Installieren Sie beim ersten Durchlauf die Abhängigkeiten:
docker-compose exec php-fpm bash
und dann composer install
API-ROUTEN
- http://localhost:33000/api/products-with-discounts (Alle Produkte)
- http://localhost:33000/api/products-with-discounts?filterByCategory=boots (nach Kategorie filtern)
TESTS
- Für Starttests
docker-compose exec php-fpm bash
und dann vendor/bin/phpunit --testdox
ERLÄUTERUNGEN ZU ENTSCHEIDUNGEN
- Ich habe Symfony für die Entwicklung eines einfachen API-Produkts/Rabatte verwendet und die Antwort von ihnen ist eine Liste von Produkten mit angewendeten Rabatten.
- Ich verwende einen einfachen Docker (Webserver Nginx / PHP-FPM / Mongo), um das Projekt auszuführen.
- Ich entscheide mich, die „im Speicher“-Datenbank einfach für die Funktionalität dieser Übung zu verwenden, aber in dem Projekt habe ich Mongo-Repositories entwickelt, weil in der Übung gesagt wird: „Sie müssen in eine Datenbank gehen. Ich entscheide mich, die „im Speicher“-Datenbank einfach für die Funktionalität zu verwenden von dieser Übung, aber in dem Projekt habe ich Mongo-Repositories entwickelt, weil in der Übung gesagt wurde: „Sie müssen berücksichtigen, dass diese Liste auf 20.000 Produkte anwachsen könnte.“ und MongoDB ist möglicherweise eine gute Option in diesem posibiliry.ccount dass diese Liste auf 20.000 Produkte anwachsen könnte.“ und mongoDB ist in dieser Möglichkeit vielleicht eine gute Option.
- Ich habe die gesamte Struktur mit Hexagonal Architecture und DDD erstellt. Mit dieser Technik trennen wir unsere Geschäftsregeln vom Rest des Codes.
- Ein darin enthaltener Begrenzungskontext „Catalog“ enthält drei Entitäten (Product, ProductDiscount und ProductPriceSummary).
- Ich habe das CQRS-Muster in unseren Anwendungsfällen (Befehle und Abfragen) verwendet, das hilft uns beim Testen.