Novedades de Laravel 5.5

Los comandos Artisan nos facilitan la creación de clases y código en la aplicación y Laravel 5.5 llega con uno nuevo: make:factory con el cual podemos crear el factory para un modelo de Eloquent.  Veamos cómo trabajar con él:


Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

Notas

Por Clemir Rondón.

El Model Factory es la manera como podemos alimentar la base de datos de nuestra aplicación con datos ficticios, que sirven de mucha ayuda para hacer pruebas en el navegador o cuando estamos escribiendo pruebas automatizadas.

Si quieres aprender más puedes revisar:

Su creación hasta Laravel 5.4 la hacíamos manualmente, es decir, debíamos escribir la definición de un factory agregando los campos del modelo en el archivo database/factories/ModelFactory.php (aunque también podíamos crear archivos diferentes por cada factory y Laravel los reconocería).

Ahora en Laravel 5.5 contamos con un nuevo comando Artisan make:factory que nos creará un archivo con el factory para un modelo.

Podemos ver cual es la definición del comando ejecutando:

php artisan help make:factory

Lo que nos indica que acepta como argumento el nombre del factory como por ejemplo:

php artisan make:factory ProfilesFactory

En caso que ya exista el modelo de Eloquent relacionado al factory que estás creando puedes especificarlo como argumento de esta manera:

php artisan make:factory ProfilesFactory --model UserProfile

De esa manera autocompleta por nosotros el nombre del modelo en la definición del factory.

Por otro lado, también fue añadida la creación de un factory a partir del comando make:model, es decir, cuando creemos un modelo podemos indicarle a Laravel que cree el factory relacionado usando la opción --factory, de esta manera:

php artisan make:model Post --factory

Si te interesa ver los commits al framework que añadieron este comando: a6ffd y d58be y el Pull Request #19985

Material relacionado

Únete a la discusión

Regístrate en Styde y obtén una invitación a nuestro Slack.

Lección anterior Nuevo comando migrate:fresh en Laravel 5.5 Lección siguiente Flujo de desarrollo con PHPUnit y base de datos en Laravel 5.5 (RefreshDatabase)