Download the PHP package pupadevs/laramain without Composer
On this page you can find all versions of the php package pupadevs/laramain. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download pupadevs/laramain
More information about pupadevs/laramain
Files in pupadevs/laramain
Package laramain
Short Description Install CQRS with DDD folder structure and Command/Query Buses for the specified entity
License MIT
Informations about the package laramain
Pupadevs\Laramain
Descripción
Pupadevs\Laramain Es un paquete Laravel diseñado para facilitar la implementación de la arquitectura DDD (Domain-Driven Design) y CQRS (Command Query Responsibility Segregation) en tus aplicaciones Laravel.
Requisitos
- PHP >= 8.2
- Laravel >= 10x
Instalación
Para instalar el paquete es necesario tener instalado Composer. https://getcomposer.org/download/ Ejecuta el siguiente comando
Uso de comandos de artisan
1.Comando Artisan con parametro Este comando te pedirá que ingreses un nombre para tu dominio. Usará ese nombre para crear la estructura de carpetas siguiendo la arquitectura DDD (Domain-Driven Design). La carpeta principal llevará el nombre que hayas proporcionado como dominio, y dentro de ella se generarán las subcarpetas correspondientes para organizar tu proyecto de acuerdo con los principios de DDD.
2.Comando Artisan basico
Repetimos publicacion del vendor
Uso del Command y Query Bus
Para utilizar las clases CommandBus
y QueryBus
, asegúrate de incluir los siguientes namespaces en tu archivo:
Creando Comando personalizado
- En la ubicacion App/Commands, crearemos nuestros commandos y sus respectivos manejadores
- Para la creacion de un Comando , necesitamos implementar de la interfaz Command use Pupadevs\Laramain\Shared\CQRS\Command\CommandBus;
- Creando Manejador de comando -En la misma ubicación donde hemos creado nuestro Command, también debemos crear su Handler. ¡Importante! El nombre del Handler debe ser exactamente igual al del Command, pero con la palabra "Handler" al final. Por ejemplo:
Creando Query personalizada
- En la ubicacion App/Querys, crearemos nuestros commandos y sus respectivos manejadores
- Para la creacion de un Comando , necesitamos implementar la interface Query use Pupadevs\Laramain\Shared\CQRS\Query\QueryBus;
- Creando Manejador de Query -En la misma ubicación donde hemos creado nuestra Query, también debemos crear su Handler. ¡Importante! El nombre del Handler debe ser exactamente igual al de la Query, pero con la palabra "Handler" al final. Por ejemplo:
Luego, puedes instanciarlas en tu Servcio o controlador como se muestra a continuación:
Uso en un servicio de Aplicacion
Uso en un Controlador
Uso de la Interfaz StringValueObject y la Clase Identifier
Interfaz StringValueObject
La interfaz StringValueObject
asegura que cualquier clase que la implemente debe ser capaz de convertirse a una representación de cadena, proporcionando métodos para manejar esta conversión.
Métodos de la Interfaz
Clase Identifier
La clase Identifier implementa la interfaz StringValueObject y representa un identificador único basado en UUID. Instanciación Para usar la clase Identifier, primero incluye el namespace correspondiente:
Luego, puedes crear una instancia de la clase Identifier. Si no proporcionas un identificador, se generará uno automáticamente:
Conversión a Cadena Para convertir el identificador a cadena de texto, puedes usar el método toString() o simplemente tratar la instancia como una cadena:
Version 2.0.0
Nuevas funcionalidades
- Nueva funcion intalacion basica
- Se agregó la carpeta DTOs a la capa de App a la instalacion con parametros.
- Se agregó la carpeta Middlewares y Requests a la capa de Infrastructure a la instalacion con parametros.
- Se agregan EventProvider y DependencyProvider a la carpeta Shared para manejar evento y DIP
Licencia
Este proyecto está bajo la Licencia MIT.
Colaboración
Si deseas contribuir a Pupadevs\Laramain, por favor sigue estos pasos:
- Fork del repositorio: Crea un fork del repositorio en GitHub.
- Crea una nueva rama: Realiza tus cambios en una nueva rama utilizando el siguiente comando:
git checkout -b nombre-de-la-rama
All versions of laramain with dependencies
illuminate/support Version ^9.0|^10.0|^11.0
illuminate/console Version ^9.0|^10.0|^11.0
ramsey/uuid Version *