Proyecto Symfony 7.2 con Docker que implementa un sistema de gestión de stock con sincronización ERP↔eCommerce.
- Docker y Docker Compose
# Clonar y arrancar
docker compose build
docker compose up -d
# Instalar dependencias
docker compose exec php composer install
# Crear tablas y cargar datos de prueba
docker compose exec php bin/console doctrine:migrations:migrate --no-interaction
docker compose exec php bin/console doctrine:fixtures:load --no-interactionO usa el script helper:
bash temp/helperScriptSetup.sh# Stock del producto 1
curl http://localhost/api/stock/1
# Respuesta:
# {"stock_total":100,"stock_reserved":15,"stock_available":85}# Consumir mensajes de la cola
docker compose exec php bin/console messenger:consume async --limit=10 -vv
# Ver mensajes fallidos
docker compose exec php bin/console messenger:failed:show
# Reintentar mensajes fallidos
docker compose exec php bin/console messenger:failed:retrydocker compose exec php bin/phpunit├── compose.yaml # Docker services (MySQL, PHP-FPM, Nginx)
├── docker/ # Dockerfiles y config
├── docs/
│ ├── ejercicio1-integracion.md # Respuestas Ejercicio 1
│ └── adr/ # Architecture Decision Records
├── sql/
│ ├── schema.sql # Schema SQL del ejercicio
│ └── stock_disponible.sql # Query SQL del ejercicio
├── src/
│ ├── Controller/StockController.php # GET /api/stock/{productId}
│ ├── Entity/ # Product, Stock, Order, OrderLine
│ ├── Service/StockService.php # Lógica de cálculo de stock
│ ├── Message/SyncStockMessage.php # DTO para sincronización
│ └── MessageHandler/SyncStockHandler.php # Handler asíncrono
└── tests/ # PHPUnit tests
| Ejercicio | Ubicación |
|---|---|
| Respuestas integración ERP↔eCommerce | docs/ejercicio1-integracion.md |
| Query SQL stock disponible | sql/stock_disponible.sql |
| Endpoint PHP (stock por producto) | src/Controller/StockController.php |
| Schema SQL | sql/schema.sql |