Novedades en Laravel 5

  • #laravel
  • #php

Os mostramos todas las novedades que trae Laravel 5 de un plumazo. No te pierdas las mejoras y cambios de esta nueva versión.

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:

PHP
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:

PHP
View::make('index');

En Laravel 5 utilizaremos:

PHP
view('index');

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.

Compartir en