Carga de seeders de forma configurable en Laravel

Carga de seeders de forma configurable en Laravel

En alguna ocasión cuando estoy haciendo trabajo de refactorización y me dispongo a agregar un seeder me a tocado toparme con un DatabaseSeeder como el siguiente.

A pasar de que el DatabaseSeeder se puede ejecutar dependiendo del ambiente que quieres, necesitas comentar lo que no requieres que se ejecute nuevamente.

por otro lado si agregas mas ambientes, tienes que ampliar el numero de condiciones que tienes en el DatabaseSeeder,

y por ultimo, tener código que no utilizas comentado, siempre ensucia el código.

Utiliza el config.

Una forma sencilla de tener esto un poco mas ordenado es crear un archivo de configuración en app/config donde puedas indicar que ambiente y que seeder quiere cargar.

Así que podemos crear un archivo app/config/seeders.php y trasladar todo lo que tenemos en las condiciones a un arreglo de la siguiente forma.

El arreglo esta organizado por “ambientes” y los seeders se cargan siempre que estén en true. Con este cambio solo tenemos que modificar el DatabaseSeeder, para que solo cargue lo necesario.

Y con esto ya quedo listo todo, ya puedes indicar el seeder que quieres cargar de acuerdo a tu ambiente y agregar uno nuevo solo requiere cambiar el config sin necesidad de cambiar el DatabaseSeeder.

Espero que les sea de utilidad la idea, y si tienen alguna otra forma de hacer esto cuéntanos dejando tus comentarios y recuerden compartir!.

Comparte este artículo

Entra en la discusión y deja tu comentario

Veces