BLOG

Laravel 5.6 y 5.7 – Novedades

En este post vamos a hablar sobre las dos últimas actualizaciones que se publicaron recientemente para el framework Laravel, las cuales son 5.6. y 5.7.
Estos lanzamientos han incluido nuevas características y en este artículo queremos tratar las más relevantes. Para una mayor información puedes visitar el registro oficial de cambios tanto para la versión 5.6. como para la versión 5.7.

 

Laravel 5.6

 

–    Symfony

Se actualizaron los componentes de symfony que componen laravel a sus respectivas versiones para symfony ~ 4.0

 

–    Bootstrap 4

También se ha actualizado el framework Bootstrap a la versión Bootstrap 4.

 

–    Mejoras de los mensajes de logs

En esta versión se introduce un archivo específico de configuración para el loggin llamado config/logging.php. En este archivo podremos definir diferentes canales o “stacks” para devolver distintos tipos de mensajes de log, los cuales son clasificados según el nivel y ser enviados a diferentes canales según su clasificación.

Esto nos permitirá una mejor organización de los mensajes a nivel de log devueltos por la aplicación y derivarlos a diferentes canales (Sistema, Slack, etc…).

 

–    Generador Artisan para controladores API

Al igual que el generador de controladores de Eloquent para recursos, ahora tenemos disponible el comando php artisan make:controller API/PhotoController –api con el cual podemos generar un controlador de api el cual contendrá los métodos: index, show, post, update y destoy.

La diferencia con –resource es que no creará los métodos create y edit.

 

–    Casting de fechas en Eloquent

En laravel 5.6. podremos establecer el formato de fecha de un campo en los atributos de un modelo de Eloquent. Este formato establecido para ese elemento será el que se utilice posteriormente cuando se serialice el modelo.

protected $casts = [
    'birthday' => 'date:Y-m-d',
    'joined_at' => 'datetime:Y-m-d H:00',
];

 

–    Alias para componentes Blade

Si utilizamos Blade como motor de plantillas nos interesará esta nueva característica la cual permite establecer un alias para los componentes de las plantillas Blade.

Blade::component('components.alert', 'alert');

 

El cual luego podrá ser invocado:

@component('alert')

You are not allowed to access this resource!

@endcomponent

 

Y si no tiene slots se puede usar como directiva de Blade:

@alert

You are not allowed to access this resource!

@endalert

 

Laravel 5.7

La última versión disponible del framework es esta 5.7 que viene con unas cuantas novedades.

 

–    Verificación de correo electrónico

En esta ocasión, el sistema de autenticación incluido por defecto en Laravel, tiene ahora la posibilidad de implementar la verificación de los usuarios por correo electrónico. Para ello se ha agregado un nuevo campo en la tabla users llamado email_verified_at.

Para su implementación debemos incluir en el modelo User la interfaz MustVerifyEmail.

<?php



namespace App;



use Illuminate\Notifications\Notifiable;

use Illuminate\Contracts\Auth\MustVerifyEmail;

use Illuminate\Foundation\Auth\User as Authenticatable;



class User extends Authenticatable implements MustVerifyEmail

{

    // ...

}

 

También debemos añadir verify en el archivo de rutas para comprobar la variable.

Auth::routes(['verify' => true]);

 

Para mandar estos correos de verificación será necesario que tengamos configurado un servicio de correo en la aplicación. Adicionalmente también disponemos de un middleware para controlar de manera sencilla el acceso a la aplicación para usuarios no verificados.

'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,

 

–    Política de acceso para usuarios no autenticados.

Hasta esta versión, los usuarios no autenticados no podían acceder a las secciones protegidas con alguna política de acceso, sin la posibilidad de mostrarla, aunque no estuviera autenticado. Pero ahora si se podrá controlar que contenido quieres que se muestre a usuarios no autenticados en la aplicación declarando un “type-hint” opcional o utilizando un valor nulo por defecto en la definición del argumento del usuario:

Gate::define('update-post', function (?User $user, Post $post) {

    // ...

});

 

–    Cantidad de enlaces en la paginación

Ya tenemos disponible la opción de configurar la cantidad de enlaces adicionales que queremos que se muestren a cada lado del paginador. Por defecto son tres enlaces, pero se puede sobreescribir dicho valor con nuevo método onEachSide:

{{ $paginator->onEachSide(5)->links() }}

 

–    Generador de URL con nueva sintaxis

Nuevo método para la generación de URLs.

action([UserController::class, 'index']);

 

–    Symfony Dump Server

Laravel 5.7 nos ofrece la posibilidad de activar un servidor dedicado a capturar las llamadas del método dump y mostrárnosla por consola. Para hacer uso de este paquete, debemos instalarlo vía composer desde el repositorio  https://github.com/beyondcode/laravel-dump-server . Tras su instalación podremos hacer uso este con el comando:

php artisan dump-server

 

Esto ejecutara un server dedicado a recoger y mostrar todas las llamadas del método dump(); y las mostrará por consola.

 

 

 

Con este repaso a las versiones 5.6 y 5.7 de Laravel hemos visto y analizado las principales novedades de dichas versiones y en que pueden ayudarnos en nuestro desarrollo de aplicaciones con Laravel.

Autor

¿Te han surgido dudas?

Contactar