Laravel, uno de los frameworks estrella en PHP ha alcanzado su quinta versión. El proyecto creado por Taylor Otwell en 2011 ha sido un gran impulso para la comunidad de PHP y ha conseguido mantener el lenguaje a la suficiente altura para competir con Ruby o JavaScript en el lado del servidor.
Para actualizar no basta con ejecutar composer upgrade
puesto que esta versión introduce cambios críticos y debemos seguir la guía oficial de actualización.
En mayo posiblemente tengamos Laravel 5.1, pero hasta entonces, disfrutemos de las más de 20 mejores introducidas en esta versión.
Estructura de directorios
https://felixsanz.com/articulos/novedades-en-laravel-5-estructura-de-directorios
Enrutamiento
https://felixsanz.com/articulos/novedades-en-laravel-5-enrutamiento
Peticiones en formularios
https://felixsanz.com/articulos/novedades-en-laravel-5-peticiones-en-formularios
Variables de entorno
https://felixsanz.com/articulos/novedades-en-laravel-5-variables-de-entorno
Comandos
https://felixsanz.com/articulos/novedades-en-laravel-5-comandos
Eventos
https://felixsanz.com/articulos/novedades-en-laravel-5-eventos
Planificador
https://felixsanz.com/articulos/novedades-en-laravel-5-planificador
Almacenamiento en la nube
https://felixsanz.com/articulos/novedades-en-laravel-5-almacenamiento-en-la-nube
Injección de métodos
Aunque el method injection ya estaba disponible en Laravel 4, solo era posible utilizarlo en nuestros controladores a través del constructor (public function __construct(Mailer $mailer)
). Ahora en Laravel 5 se pueden injectar clases en cualquier parte.
Errores personalizados
En esta nueva versión ya no utilizaremos App::error
para generar una respuesta a los errores 404, 500, etc. Ahora, si queremos personalizar estas páginas de error, basta con crear nuestras vistas siguiendo el formato errors.{httpStatusCode}
, lo que dará como resultado una vista en la siguiente localización: resources/views/errors/404.blade.php
y se cargará llegado el momento.
Por otro lado, deja de estar integrado el paquete Whoops que mostraba los errores del framework con una bonita interfaz (aunque podemos volver a integrarlo fácilmente).
Casting de atributos
Eloquent ahora integra attribute casting, una funcionalidad creada por Dayle Rees que nos permite forzar los tipos de nuestros datos en Eloquent. Sólamente tenemos que añadir un array llamado $casts
a nuestro modelo:
protected $casts = [
'is_admin' => 'boolean',
];
Esto hará que si nuestro atributo llamado "is_admin" se almacena en la base de datos como un entero o una cadena, siempre se forzará para que sea tratado como un booleano al acceder a él.
Los tipos que se pueden forzar son: integer, real, float, double, string, boolean, y array.
Cambios en Blade
En la versión 4 se utilizaba {{
para imprimir literalmente y {{{
para imprimir con escapado.
A partir de ahora, ambos imprimirán con escapado y para imprimir en modo literal (raw) se utilizará {!! $var !!}
. Por ejemplo: {!! Form::open() !!}
.
Facades y Helpers
Muchos Facades son ahora funciones helper. Por ejemplo para renderizar una vista en Laravel 4 se utilizaba:
View::;
En Laravel 5 utilizaremos:
;
Esto incluye una larga lista como App::
, Config::
, Route::
o Response::
entre otros.
Nueva función de depuración
La función de depuración dd()
ha sido reemplazada por var_dumper, un componente creado por el equipo de Symfony.
Elixir
Elixir es un API limpio y sencillo que envuelve las tareas de Gulp en nuestra aplicación de Laravel.
Autenticación
La autenticación se ha convertido en algo muy simple. Ejecutamos el comando php artisan make:auth
y el framework nos proporcionará dos controladores con funciones para registro, login y logout: AuthController
y RemindersController
.
Socialite
Socialite es un paquete opcional creado por Laravel para ayudarnos a gestionar la autentificación por OAuth. De momento nos permite interactuar con Facebook, Twitter, Google y GitHub.