Shopsystem - Beschreibung unten ist nicht aktuell, Projekt wird neu erstellt
Allgemeine Informationen
- Zur Erleichterung der Erstellung von robustem Code werden mehrere Tools verwendet: phpstan (6 Level), Deptrac, Codesniffer.
- Die Anwendung ist gut getestet, wobei die Tests in Anwendungs- (E2E), Integrations- und Unit-Tests unterteilt sind.
- Ein auf Redis basierendes Caching-System wurde implementiert.
Technische Lösungen
- Verzeichnisse sind in /Module organisiert, das Unterverzeichnisse für alle Module enthält, und /Shared, das Komponenten enthält, die von allen Modulen gemeinsam genutzt werden. Jedes Modul [Bestellung, Produkt, Benutzer] besteht aus vier Verzeichnissen:
- Anwendung -> beherbergt die Implementierung der Anwendungslogik
- Domäne -> enthält Dinge, die sich ausschließlich auf Geschäftsinformationen beziehen – Entitäten, Aufzählungen und Schnittstellen von Repositorys
- Infrastruktur -> umfasst Komponenten im Zusammenhang mit der technischen Ebene, wie z. B. die Datenbank und das Caching-System
- UI -> enthält Konsolenbefehle oder Controller, die als Verbindung zwischen dem Benutzer und dem System dienen
- Aktionen werden in Befehle und Abfragen unterteilt. Ich habe eine benutzerdefinierte Lösung zum Speichern von Informationen nach Abschluss von Aktionen implementiert. Jeder Befehl gibt ein CommandResult zurück, während Abfragen ein QueryResult zurückgeben, das Informationen über Erfolg, Statuscodes und abgerufene Daten enthält.
- Die Authentifizierung wird mithilfe des JWT-Ansatzes mit dem LexikJWTAuthenticationBundle implementiert.
- Mithilfe von Event Sourcing werden Informationen über den aktuellen Status einer Bestellung gespeichert. Der zuletzt erstellte Bestellstatus gibt den aktuellen Status an.
Datenbank
API-Dokumente
Struktur
Modul
Befehle mit Make
Für den ersten Lauf initialisieren
Entwicklungsprofil ausführen
Löschen Sie Migrationen, migrieren Sie und laden Sie Fixtures
make drop_migrations
make migrate
make load_fixtures
Führen Sie alle Tests durch
Befehle ohne Make
Für den ersten Lauf initialisieren
docker-compose up --profile dev -d
docker-compose exec php bin/console doctrine:migrations:diff
docker-compose exec php bin/console doctrine:migrations:migrate
docker-compose exec php bin/console lexik:jwt:generate-keypair
Überprüfen Sie für andere Befehle den Inhalt von Makefile
API-Dokumentation
Die API-Dokumentation ist verfügbar unter