En esta página:
- Partes
- Directivas Blade Marcadas/Seleccionadas
- Paginación de Vistas con Bootstrap 5
- Mejoras en la Validación de Datos de Arrays Anidadas
- API de Laravel Breeze y Next.js
- Página de Excepción Mejorada
- Mejora en la Salida del Comando route:list en la CLI de Laravel
- Cobertura de Prueba con el Comando Artisan test
- Servidor de Eco Soketi
- Compatibilidad Mejorada de Colecciones con IDEs
- Nuevos Helpers
- Nota(s)
En la parte anterior llamada Las Novedades más destacadas que trae Laravel 9 – Parte 1, vimos varias novedades como Symfony Mailer, Flysystem 3.x, Eloquent Accessors/Mutators Mejorados, Enlaces de Route Bindings con Enumeraciones, Scoping Forzado de Enlace de Ruta, Grupos de Ruta en Controlador, Motor de Base de Datos Laravel Scout y otras características nuevas de esta version de Laravel. En esta segunda y última parte vamos a termina de compartir todas las novedades que trae Laravel 9, vamos con ello.
Partes
- Parte 1
- Parte 2 (Final)
Antes de continuar, te invito a leer los siguientes artículos:
- Como Crear un CRUD con Laravel 8 y Bootstrap 5 – Parte 1
- Como Usar Mongo DB en Laravel 8 + Listado de Datos – Parte 1
- Que es Laravel + Tu Primera Aplicación con Laravel
- Las Novedades más destacadas que trae Laravel 8
- 6 Helpers de gran Utilidad en Laravel 7
- Como crear un CRUD con Galería de Imágenes en Laravel 6.2 y Bootstrap 4 – Parte 1
- Como Trabajar con Query Scopes (Ámbitos de Consulta) en Laravel 7
- Lee más artículos en la categoría Laravel
Asimismo te invito a escuchar el Podcast: “¿ Que Hago Si No Tengo Los Recursos Para Dedicarme A La Programación ?”:
Spotify: | Sound Cloud: | Apple Podcasts |
Bien ahora continuemos con el Post: Las Novedades más destacadas que trae Laravel 9 – Parte 2 (Final).
Al igual que en la Parte 1, voy a compartir el nombre de la novedad, una descripción y una imagen de referencia para conocer mejor la novedad.
Directivas Blade Marcadas/Seleccionadas
Ahora para mayor comodidad, puedes usar la directiva @checked para indicar fácilmente si un checkbox HTML esta marcado. Esta directiva se repetirá si la condición proporcionada se evalua como true:
1 2 3 4 5 6 |
<input type="checkbox" name="active" value="active" @checked(old('active', $user->active)) /> |
Igualmente la directica @selected puede usarse para indicar si una determinada opción de selección debe ser seleccionada:
1 2 3 4 5 6 7 8 9 |
<select name="version"> @foreach ($product->versions as $version) <option value="{{ $version }}" @selected(old('version') == $version)> {{ $version }} </option> @endforeach </select> |
Paginación de Vistas con Bootstrap 5
Laravel 9 incluye paginación de vistas con Bootstrap 5. Si deseas usar estas vistas en lugar de las vistas predeterminadas de Tailwind CSS, puedes llamar al método del paginador useBootstrapFive() dentro del método boot() de tu clase App\Providers\AppServiceProvider:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
use Illuminate\Pagination\Paginator; /** * Bootstrap any application services. * * @return void */ public function boot() { Paginator::useBootstrapFive(); } |
Mejoras en la Validación de Datos de Arrays Anidadas
En ocasiones es posible que necesites acceder al valor de un elemento de array anidado determinado al asignar reglas de validación al atributo. Ahora puedes lograr esto usando el método Rule::forEach. El método forEach() acepta un cierre que se invocará para cada iteración del atributo de array bajo validación y recibirá el valor del atributo y el nombre de atributo explícito y completamente expandido. El cierre debe devolver un array de reglas para asignar al elemento del array:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
use App\Rules\HasPermission; use Illuminate\Support\Facades\Validator; use Illuminate\Validation\Rule; $validator = Validator::make($request->all(), [ 'companies.*.id' => Rule::forEach(function ($value, $attribute) { return [ Rule::exists(Company::class, 'id'), new HasPermission('manage-company', $value), ]; }), ]); |
API de Laravel Breeze y Next.js
En Laravel 9, el kit de inicio de Laravel Breeze ha recibido en su API un modo de scaffolding y una implementación gratuita de frontend de Next.js.
Este scaffolding del kit de inicio se puede usar para poner en marcha tus aplicaciones Laravel que sirven como backend y generar una interfaz de JavaScript.
Página de Excepción Mejorada
La pagina de depuración de excepciones de código abierto creada por Spatie, se ha rediseñado desde cero.
Ahora tiene un nuevo y mejorado diseño que incluye temas claros y oscuros, funcionalidad personalizable de “open in editor” y otras características.
Mejora en la Salida del Comando route:list en la CLI de Laravel
La salida del comando route:list en la CLI, se ha mejorado significativamente en Laravel 9.
Ahora se ofrece una experiencia nueva y hermosa al explorar las definiciones de ruta.
Cobertura de Prueba con el Comando Artisan test
Al comando artisan test se le añadio la nueva opción –coverage que te permite explorar la cantidad de cobertura de código que tus pruebas brindan a tu aplicación:
1 2 3 4 |
# Nueva Opción o Flag '--coverage' php artisan test --coverage |
Los resultados de la cobertura de la prueba se mostrarán directamente en la salida de la CLI:
También puedes especificar un umbral mínimo que debe cumplir el porcentaje de cobertura de tu prueba, puedes usar la opción –min.
1 2 3 4 |
# Opción con umbral mínimo de cobertura php artisan test --coverage --min=80.3 |
El conjunto de pruebas fallará si no se alcanza el umbral mínimo dado:
Servidor de Eco Soketi
Aunque no es exclusivo de Laravel 9, Laravel ha ayudado recientemente con la documentación de Soketi, un servidor Web Socket compatible con Laravel Echo escrito para Node JS. Soketi ofrece una excelente alternativa de código abierto a Pusher y Ably para aquellas aplicaciones que prefieren administrar su propio servidor Web Socket.
Puedes obtener más información sobre el uso de Soketi, consulta la documentación de transmisión y la documentación de Soketi.
Compatibilidad Mejorada de Colecciones con IDEs
En Laravel 9 se agregaron definiciones de tipo de estilo “genéricas” mejoradas al componente de colecciones, mejorando el soporte de análisis estático y IDE.
Los IDE como PHPStorm o las herramientas de análisis estático como PHPStan ahora comprenderán mejor las colecciones de Laravel de forma nativa.
Nuevos Helpers
En Laravel 9 se agregaron 2 nuevas funciones de ayuda (helpers) que puedes usar en tu propia aplicación, estas son str() y to_route().
str()
Esta función devuelve una nueva instancia Illuminate\Support\Stringable para una string dada. Esta función es equivalente al método Str::of:
1 2 3 4 5 |
$string = str('Taylor')->append(' Otwell'); // 'Taylor Otwell' |
Y si no se proporciona ningún argumento a la función str(), esta devuelve una instancia de Illuminate\Support\Str:
1 2 3 4 5 |
$snake = str()->snake('LaravelFramework'); // 'laravel_framework' |
to_route()
Esta función genera una respuesta HTTP de redireccionamiento para una ruta con nombre determinada, lo que proporciona una forma expresiva de redirigir a rutas con nombre desde sus rutas y controladores:
1 2 3 |
return to_route('users.show', ['user' => 1]); |
Si es necesario, puedes pasar el código de estado HTTP que debe asignarse a la redirección y cualquier encabezado de respuesta adicional como el tercer y cuarto argumento del método to_route():
1 2 3 |
return to_route('users.show', ['user' => 1], 302, ['X-Framework' => 'Laravel']); |
Bueno eso es todo, hasta la fecha de este artículo, estas son las Novedades que trae Laravel 9, con el paso de las Meses iremos viendo nuevas novedades sobre este Framework.
Nota(s)
- Algunas Novedades pueden cambiar, modificarse o ser eliminadas en un futuro, esto no depende de nosotros, si no de los Desarrolladores que dan soporte a Laravel, que suelen cambiar las funcionalidades de Laravel en futuras versiones.
- No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.
Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.