laravel-5-tinker

Tinker es una consola de comandos con la que podremos interactuar con todas las clases y métodos de nuestra aplicación, una herramienta muy útil a la hora de realizar pruebas de funcionamiento.

Activar la tinker

Para usar o activar la consola de comandos de laravel solo debemos ejecutar el siguiente comando haciendo uso de artisan

$ php artisan tinker

Aparecerá en pantalla una línea similar a esta

Psy Shell v0.4.4 (PHP 5.5.15 — cli) by Justin Hileman 
>>>

Esto indica que estamos en la consola de tinker y desde ahora podemos ejecutar todos los métodos de nuestra aplicación.

Sintaxis  

Lo genial de esta herramienta es que podemos escribir código en php y ejecutarlo, los llamados a las variables y funciones se hacen de la misma forma, de hecho podemos usar funciones como print_r() para imprimir arrays o echo $var, para imprimir variables lo que hace mucho más sencillo su uso.

>>> $var = 1 + 2 ;
=> 3
>>> echo $var ;
3⏎
=> null
>>>

Creando registros desde la consola con tinker

Veamos un ejemplo más divertido usando los métodos de la aplicación, esta vez vamos a crear un usuario, tal cual como lo haríamos desde un controlador.

Usaremos la migración de usuarios que viene por defecto en laravel 5, para más información visita Creando Migraciones en Laravel 5.

Nota: debes tener configurada la conexión a tu base de datos.

>>> $user = new App\User;
=> <App\User #000000000cd4b36c000000004678b206> {}

Con esto se habrá creado una nueva instancia de la clase User, luego asignamos los valores correspondientes a cada campo.

>>> $user->name = 'jeff';
=> "jeff"
>>> $user->email = '[email protected]';
=> "[email protected]"
>>> $user->password = Hash::make('12345');
=> "$2y$10$VKisE35ASiyLXnZefqvjN..1vVa5wvSkgo6ou5FJwuzYfepUDB/Ku"

En este caso se uso el método Hash::make() para la contraseña y vemos el resultado directamente en pantalla.

Por último solo queda almacenar el usuario

>>> $user->save();
=> true
>>>

Si la respuesta es true sabremos que todo salió bien, pero vamos a comprobarlo.

Realizando búsquedas desde la consola

Una vez mas te recuerdo que puedes acceder a todos los métodos y clases de la aplicación, por lo cual puedes hacer querys de tus modelos como veremos a continuación.

>>> $list = App\User::all();
=> <Illuminate\Database\Eloquent\Collection #000000000a28c38000000000225703b3> [     <App\User #000000000a28c39f00000000225703b3> {                                      id: "1",
         name: "jeff",
         email: "[email protected]",
         created_at: "2015-05-08 13:54:25",
         updated_at: "2015-05-08 13:54:25"
     }
   ]

Accediendo a otros métodos
Probemos con Carbon del cual hablábamos en la publicación de Manipular fechas con el componente Carbon en Laravel 5

>>> $carbon = new Carbon\Carbon;
=> <Carbon\Carbon #000000004be04f1e00000000766cfad4> {
date: "2015-05-08 14:04:05.000000",
timezone_type: 3,
timezone: "UTC"
}
>>> $date = $carbon->now();
=> <Carbon\Carbon #000000004be04f1f00000000766cfad4> {
date: "2015-05-08 14:04:29.000000",
timezone_type: 3,
timezone: "UTC"
}
>>> echo $date;
2015-05-08 14:05:21⏎
=> null

Felicidades! desde ahora probarás tu código como un verdadero profesional, recuerda dejar tus dudas y sugerencias en la sección de comentarios, si te gusto el post por favor compártelo en tus redes sociales preferidas.

Algunas otras publicaciones que te pueden interesar :

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Lección anterior Manipular fechas con el componente Carbon en Laravel 5 Lección siguiente Como generar CRUD en Laravel 5 con Laravel API Generator