Sistema de tienda: la descripción a continuación no está actualizada, el proyecto se está reconstruyendo
Información general
- Se utilizan varias herramientas para facilitar la creación de código robusto: phpstan (nivel 6), deptrac, codesniffer.
- La aplicación está bien probada, con pruebas clasificadas en Pruebas de aplicación (E2E), integración y unidad.
- Se ha implementado un sistema de almacenamiento en caché basado en Redis.
Soluciones técnicas
- Los directorios están organizados en /Module, que contiene subdirectorios para todos los módulos, y /Shared, que incluye componentes compartidos entre todos los módulos. Cada módulo [Pedido, Producto, Usuario] consta de cuatro directorios:
- Aplicación -> alberga la implementación de la lógica de la aplicación
- Dominio -> contiene cosas relacionadas estrictamente con información comercial: entidades, enumeraciones e interfaces de repositorios
- Infraestructura -> incluye componentes relacionados con la capa técnica, como la base de datos y el sistema de almacenamiento en caché
- UI -> contiene comandos de consola o controladores que sirven como conexión entre el usuario y el sistema
- Las acciones se clasifican en comandos y consultas. He implementado una solución personalizada para almacenar información después de la finalización de las acciones. Cada comando devuelve un CommandResult, mientras que las consultas devuelven un QueryResult, que contiene información sobre el éxito, códigos de estado y datos recuperados.
- La autenticación se implementa utilizando el enfoque JWT con LexikJWTAuthenticationBundle.
- El abastecimiento de eventos se utiliza para almacenar información sobre el estado actual de un pedido. El último estado del pedido creado indica su estado actual.
Base de datos
Documentos API
Estructura
Módulo
Comandos usando Make
Inicializar por primera vez
Ejecutar perfil de desarrollo
Eliminar migraciones, migrar y cargar accesorios
make drop_migrations
make migrate
make load_fixtures
Ejecute todas las pruebas
Comandos sin marca
Inicializar por primera vez
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
Para otros comandos verifique el contenido de Makefile
Documentación API
La documentación de la API está disponible en