¡La versión 5.6 de Laravel ya está disponible oficialmente como la próxima versión principal del framework! Este lanzamiento tiene muchas características nuevas, y hemos resaltado las más destacadas aquí. Para obtener una lista completa de todos los cambios, visite el registro de cambios (GitHub).
Mejoras del Logging
La característica más importante de la versión 5.6 de Laravel son las mejoras del Logging. Para empezar, la configuración se mueve desde el archivo config/app.php al nuevo archivo config/logging.php.
Configura “stacks” para que se pueda enviar mensajes de log a múltiples controladores. Por ejemplo, se puede enviar todos los mensajes de depuración a un log del sistema y enviar registros de errores a slack.
Obtenga más información sobre cómo configurar y personalizar los logs visitando la documentación.
Programación de tareas de servidor único
Si tiene un planificador de tareas ejecutándose en varios servidores, la tarea se ejecutará en cada servidor. Puede indicar que una tarea solo debe ejecutarse en uno de esos servidores con el método onOneServer ():
1 2 3 4 | $schedule->command('report:generate') ->fridays() ->at('17:00') ->onOneServer(); |
Nota: se debe utilizar memcached
o redis
como el controlador de memoria caché de aplicaciones predeterminado para aprovechar la programación de tareas de servidor único en la versión 5.6 de Laravel.
Límite de frecuencia dinámico
Laravel 5.6 introduce una limitación de velocidad dinámica que le brinda más flexibilidad y hace que sea más fácil calificar el límite por usuario:
1 2 3 4 5 6 | Route::middleware('auth:api', 'throttle:rate_limit,1') ->group(function () { Route::get('/user', function () { // }); }); |
En el ejemplo anterior, rate_limit
es un atributo del modelo App\User
para determinar el número de solicitudes permitidas en el límite de tiempo dado.
Clases para Canales de Broadcast
Ahora puede usar clases de canales en su archivo routes/channels.php
en lugar de utilizar closures (funciones anónimas).
Para generar una nueva clase de canal, Laravel 5.6 proporciona un nuevo comando make:channel
:
1 | php artisan make:channel OrderChannel |
Ahora se registra el canal en el archivo routes/channels.php
de la siguiente manera:
1 2 3 | use App\Broadcasting\OrderChannel; Broadcast::channel('order.{order}', OrderChannel::class); |
Generación del controlador API
Ahora se puede generar un controlador de recursos para las API que excluirá las acciones de creación y edición, que solo se aplican a los controladores de recursos que devuelven HTML. Para generar un controlador de recursos, use el indicador –api:
1 | php artisan make:controller API/PhotoController --api |
Casting de Fecha en Eloquent
A partir de ahora se podrá personalizar individualmente el formato de la fecha de Eloquent y el lanzamiento de fecha y hora:
1 2 3 4 | protected $casts = [ 'birthday' => 'date:Y-m-d', 'joined_at' => 'datetime:Y-m-d H:00', ]; |
Este formato se usa en la serialización del modelo a un array o datos JSON.
Alias de Componentes de Blade
Ahora se puede asignar alias a los componentes de blade para acceder a ellos de manera mas sencilla. Por ejemplo, si almacena un componente en resources/views/components/alert.blade.php
, se puede usar el método component()
para alias a un nombre más corto:
1 | Blade::component('components.alert', 'alert'); |
A continuación, se puede representar con el alias definido:
1 2 3 | @component('alert') <p>This is an alert component</p> @endcomponent |
Argon2 Password Hashing
Laravel 5.6 admite un nuevo algoritmo hash de contraseñas disponible para PHP 7.2+. Se puede configurar qué controlador hash se usa de forma predeterminada en el nuevo archivo de configuración config/hashing.php
.
Puede obtener más información en nuestro artículo sobre la compatibilidad con Laravel 5.6 para el algoritmo de hash Argon2i.
Métodos UUID
Dos nuevos métodos están ahora disponibles en la clase Illuminate\Support\Str
para generar un Identificador único universal (UUID):
1 2 3 4 5 | // Los métodos retornan un objeto Ramsey\Uuid\Uuid return (string) Str::uuid(); return (string) Str::orderedUuid(); |
El método orderedUuid()
generará un primer UUID de marca de tiempo para una indexación más fácil y más eficiente de la base de datos.
Collision
Recientemente escribimos sobre Collision llegando a Laravel 5.6 como una dependencia de desarrollo, Collision proporciona hermosos informes de errores en la consola:
Bootstrap 4
Todos los assets de frontend y el componente Vue de ejemplo ahora usan Bootstrap 4. Cubrimos Bootstrap 4 en versión beta e incluso creamos un preset para Bootstrap 4 Laravel. ¡Es fantástico ver el envío estable de Bootstrap 4 con Laravel 5.6!
Aprender más sobre Laravel 5.6
Para actualizar su instalación de Laravel a v5.6, consulte la guía de actualización. Laravel se esfuerza por hacer que la actualización de su aplicación entre los principales lanzamientos sea lo más breve posible. Se estima que la actualización de 5.5 a 5.6 demorará entre 10-30 minutos. Obviamente, el tiempo variará según la aplicación.