- #laravel
- #pipelines
- #optimizacion
Simplifica tu código con pipelines en Laravel
Escrito por Jhon Achata el 14 de marzo de 2023
Los pipelines
son una forma de encadenar diferentes acciones o procesos sobre un elemento, de forma que podamos trabajar de manera mas eficiente y ordenada. En lugar de tener que definir todos los pasos necesarios en un solo lugar podemos crear sub procesos que se apliquen al elemento que le pasamos a un pipeline.
Estructura de un pipeline de laravel
Pensemos en los Pipelines
como una fabrica, al inicio enviamos la materia prima y sobre esta vamos aplicando diferentes procesos para obtener un resultado final. A cada proceso lo conocemos como Pipe
, son muy parecidos a los middlewares
en cuanto a estructura, veamos a continuación:
En el ejemplo anterior vemos que enviamos un usuario al pipeline, y los pipes
(sub procesos), reciben el usuario y un parámetro adicional $next
que es un closure.
Ademas de escribir cada pipe
como una función, también podemos extraer la lógica en una clase aparte y enviarla al pipeline
.
Caso de uso
- En una tienda online, estamos creando el proceso en el que un usuario agrega un producto a su carrito de compras.
Para completar este proceso, debemos tomar en cuenta algunos sub procesos para completar el proceso principal:
- Validar stock del producto
- Agregar el producto al carrito
- Calcular el monto total
Aplicamos la solución con Pipelines
La estructura de un pipe se vería asi:
Al final de cada pipe debemos devolver el elemento que le pasamos al pipeline al inicio.
Conclusión
Como vimos, los Pipelines en laravel
, son una funcionalidad muy util que nos permite simplicar nuestro código y hacerlo mas eficiente.
Como dato adicional, solo podremos encontrar documentación sobre los Pipelines en la version 10.x del framework, pero podemos usarlo en cualquier versión, ya que este viene por defecto en el core.