7 características de Laravel 8 que quizás no conozcas
Como desarrollador, Laravel es uno de los frameworks PHP más populares entre los desarrolladores web. Con Laravel, los desarrolladores ya cuentan con muchas características / funciones que podemos usar para crear nuestra próxima gran aplicación. Y lo bueno de Laravel es que tienen una gran comunidad. Podemos encontrar fácilmente foros y comunidades de Laravel si necesitamos algunas respuestas con Something. Debido a que tiene una comunidad muy grande, Laravel actualiza y actualiza continuamente sus versiones para que tengamos la tecnología más avanzada.
El 8 de septiembre de 2019, Laravel lanzó la versión 8 que viene con nuevas características muy emocionantes y sorprendentes. Para mí, Laravel 8 es una gran actualización porque algunas de las características requieren que trabajemos de manera diferente a como lo hemos hecho antes. Por supuesto, todas las actualizaciones solo tienen la intención de mejorar el flujo de trabajo de PHP y Laravel.
Entonces, en este artículo, le mostraré 7 actualizaciones de funciones nuevas que quizás aún no conozca.
#1 | Modo de mantenimiento
En la versión anterior cuando queremos hacer nuestro sitio web fuera de servicio / mantenimiento, esto lo podemos hacer a través de artesano.
php artisan down
Y tiene algunas opciones adicionales como — message, — retry, o — permitir.
En Laravel 8, tenemos opciones adicionales:
php artisan down — refresh=15
Para indicar al navegador que actualice la página en segundos especificados.
php artisan down — secret=”1630542a-246b-4b66-afa1-dd72a4c43515"
Entonces podemos acceder a la web usando https://example.com/1630542a-246b-4b66-afa1-dd72a4c43515 mientras el sitio web aún está inactivo.
php artisan down — redirect=/
Y la última opción puede decirle a Laravel que redirija todas las solicitudes a las rutas especificadas durante el mantenimiento.
#2 | Trabajo por lotes
Las funciones de Job Batching son útiles cuando queremos ejecutar algunos trabajos al mismo tiempo (pero no al mismo tiempo) y podemos detectar la devolución de llamada si el trabajo se ejecutó correctamente o no. Para crear lotes de trabajos, primero necesitamos crear una clase de trabajo que extienda el rasgo Illuminate\Bus\Batchable trait.
Podemos ejecutar nuestros lotes de trabajo con:
<?php $batch = Bus::batch([ new BatchedJob(), new BatchedJob(), new BatchedJob(), new BatchedJob(), new BatchedJob(), ])->then(function (Batch $batch) { // All jobs completed successfully... })->catch(function (Batch $batch, Throwable $e) { // First batch job failure detected... })->finally(function (Batch $batch) { // The batch has finished executing... })->dispatch();
#3 | Cierre de las colas
Por lo general, cuando queremos enviar un trabajo a la cola, necesitamos una clase de trabajo. Pero hoy, podemos enviar un trabajo usando el cierre, también tiene una devolución de llamada de captura para manejar fallas.
<?php dispatch(function () use ($variable) { // Some Logics })->catch(function (Throwable $e) { Log::error($e); });
#4 | Limitador de velocidad
En Laravel 8, limitamos la solicitud HTTP en RouteServiceProvider donde es muy flexible de usar.
RateLimiter::for('uploads', function (Request $request) { return Limit::perMinute(1000); });
También podemos cambiar el limitador de forma dinámica / programática.
RateLimiter::for('uploads', function (Request $request) { return $request->user()->vipCustomer() ? Limit::none() : Limit::perMinute(100); });
#5 | Laravel Octane
Octane es el último paquete oficial de Laravel donde hace que su aplicación se ejecute en la parte superior del servidor Swoole. Ejecutar Laravel con Octane hará que el rendimiento de la aplicación sea hasta 10 veces más rápido que el servicio artesanal tradicional. Además, en Octane, podemos ejecutar los códigos PHP de forma asincrónica / concurrente para que pueda manejar muchas tareas pesadas en poco tiempo.
[$users, $servers] = Octane::concurrently([ fn () => User::all(), fn () => Server::all(), ]);
Octane también tiene una función para usar Swoole Table, donde puede realizar una lectura / escritura extrema para su aplicación. Además, podemos usar la caché usando Swoole como controlador.
#6 | Laravel Jetstream
Jetstream es un paquete en el que nos proporciona el andamio / plantilla para nuestro punto de partida en el proyecto. Tiene abundantes funciones como gestión de perfiles de usuario, autenticación, verificación de correo electrónico, 2FA, funciones de gestión de equipos, etc.
#7 | Aplastando la migración
Cuando el proyecto crece cada vez más, podemos notar que tenemos muchos archivos de migración. En Laravel 8, podemos aplastar todos los archivos de migración en un solo esquema SQL.
php artisan schema:dump --prune
Con ese comando, tendremos un archivo de esquema y cada vez que ejecutemos artisan migrate
, Laravel ejecutará primero el archivo de esquema y luego verificará los archivos de migración restantes.
Hay listas de actualizaciones de Laravel 8 que quizás no conozca. Por supuesto, esta actualización tiene muchos cambios que ya conoce lo suficientemente bien, como el espacio de nombres de rutas, fábrica, modelos, etc. Pero creo que estas listas contienen algunos cambios que podemos perder (pero vale la pena conocerlos) porque no lo usan cotidianamente.