¡A partir del día de hoy ya tenemos disponible Laravel 5.8 para descargar! 👏🎉
Nuevas características de Laravel 5.8
En Laravel tip ya habíamos anticipados algunas de las características que de esta nueva versión de Laravel, como el soporte para Carbon 2 y modificaciones en helpers. En este artículo vamos a continuar con el listado de las nuevas funciones que Laravel 5.8 trae para nosotros:
Registración Automática de Políticas
Con Laravel 5.8 no será necesario registrar las Políticas (o Polices) en AuthServiceProvider
, siempre y cuando estén los modelos y las politicas estén en su ubicación convencional.
En versiones anteriores teníamos que registrar nuestras políticas en el arreglo $policies
protected $policies = [ 'App\Model' => 'App\Policies\ModelPolicy' ];
En Laravel 5.8 se podrá continuar registrando las políticas de esta forma, pero si no lo hacemos, Laravel lo hace por nosotros. 😉
Nuevo tipo de relación para Eloquent: hasOneThrough
En esta versión de Laravel 5.8, Eloquent también tiene sus nuevas características. Ahora proporciona soporte para el tipo de relación hasOneThrough
. Este nuevo tipo de relación nos permite acceder a la relación de una relación de un modelo, no se entendió mucho, no? Veamos la siguiente imagen:
En la imagen tenemos el modelo Tu
que tiene una relación hasOne
con el modelo Novia
, y el modelo Novia
tiene una relación hasOne
con el modelo Padre
. Por lo tanto, con el nuevo tipo de relación hasOneThrough
, desde el modelo Tu
podes acceder al padre de tu novia 😂.
Integración con PHP dotenv 3.0
Para los que no saben, PHP dontenv es la herramienta que permite la lectura de los archivos .env
de nuestra aplicación en Laravel. Hasta Laravel 5.7 solo soportaba la versión 2.0 de dotenv. Pero en Laravel 5.8 la integración con PHP dotenv 3.0 se ha incluido para mantener al Framework con las ultimas actualizaciones de sus paquetes.
Las características que incluye PHP dotenv 3.0 son:
- Más flexibilidad en términos de qué partes del entorno intentamos leer y modificar.
- Soporte para variables multilínea.
- Los valores de nuestras variables no serán recortados cuando sean muy extensos.
- Acepta una lista de rutas para intentar buscar el archivo
.env
, en lugar de una sola ruta. - Se mejoraron la validación de los nombres de variables para evitar errores.
Con dotevn 3.0 ahora vamos a poder definir nuestras variables de la siguiente forma:
MY_VARIABLE="value1
value2"
Asignar multiples Autorizadores a tus canales de Broadcast
En versiones anteriores de Laravel, los canales de broadcast privados y de presencia utilizaban la autenticación predeterminada de tu aplicación. Pero a partir de Laravel 5.8, puedes asignar múltiples autorizadores para autenticas las solicitudes entrantes:
Broadcast::channel('channel', function() { // ... }, ['guards' => ['web', 'admin']])
Una mejor forma de usar el método orWhere de Eloquent
Hasta Laravel 5.7, el método orWhere
de Eloquent (en algunos casos) era algo dificultoso entender y no parecía tan fluido con los Closures.
$users = App\User::where('email', '<>', null)->orWhere(function (Builder $query) { $query->active(); })->get();
Pero con Laravel 5.8 se mejoro mucho la utilización de esta función encadenando las salidas:
$users = App\User::where('email', '<>', null)->orWhere->active()->get();
Más características en Laravel 5.8
Como dijimos antes, en este artículo podes ver mas caracterizaras de Laravel 5.8 y por supuesto en la documentación oficial de Laravel donde detallan las nuevas funciones que describimos en este articulo, como modificaciones menores y correcciones del Framework.
Soporte para Laravel 5.8
Con el lanzamiento de hoy, Laravel 5.7 no recibirá correcciones de errores de características ni actualizaciones. Sin embargo, 5.7 recibirá actualizaciones de seguridad hasta agosto de 2019.
Laravel 5.8 es la última versión estable y recibirá correcciones de errores y actualizaciones hasta aproximadamente Agosto de 2019 y correcciones de seguridad hasta aproximadamente Febrero de 2020.
Jajaja naaadaaa mas cool que la explicación de hasOneThrough
Recomendarias actualizar proyectos en producción con esta versión?
No se actualiza directamente en producción (si es a lo que te referías).
Primero se actualiza en desarrollo, corres pruebas y verificas que todo sigue funcionando bien.
Y luego lo subes a producción.
La mejor característica es el HasOneThrough. Hace algunos días necesitaba algo como esto y me toco resolver con otra cosa jejeje. ¡Saludos!