Esta es una aplicación PHP desarrollada siguiendo los principios de Domain-Driven Design (DDD) y Ports & Adapters. La aplicación permite registrar usuarios, validar sus datos y persistirlos en una base de datos MySQL utilizando Doctrine como ORM. Además, se incluyen pruebas unitarias y de integración con PHPUnit, y el entorno se puede desplegar fácilmente usando Docker.
- Docker
- Docker Compose
- PHP 8.1 o superior
- Composer
-
Clona el repositorio
git clone https://github.com/Jorge-Ivan/user-manager-with-ddd.git cd user-manager-with-ddd
-
Iniciar el Entorno con Docker
make setup
Este comando hará lo siguiente:
- Levantar los servicios de PHP y MySQL.
- Instalar las dependencias de Composer.
-
Acceder al Contenedor de PHP
make bash
-
Ejecutar las Migraciones (Opcional)
make migrate
-
Ejecutar las Pruebas
make test
-
Acceder a la Aplicación
La aplicación estará disponible en http://localhost:9000 (si el contenedor se compilo y ejecuto correctamente).
-
Registro de usuarios
POST /api/register
Body
application/json
:{ "name": "John Doe", "email": "[email protected]", "password": "Str0ngP@ss!" }
-
-
Apagar contenedor
make down
El archivo docker-compose.yml
define dos servicios:
- php: Contenedor con PHP, Composer y Doctrine.
- mysql: Contenedor con MySQL en el puerto (3307) y adminer para gestionar la base de datos en http://localhost:8080.
Las dependencias principales incluyen:
- Doctrine: Para la gestión de la base de datos.
- PHPUnit: Para pruebas automatizadas.
- Symfony HTTP Foundation: Para manejo de solicitudes y respuestas HTTP.