Liberada la versión 10.34 de Laravel.

Liberada la versión 10.34 de Laravel.

Jorge García
Jorge García
Comparte:
Esta semana, el equipo de Laravel lanzó la versión 10.34.
Esta versión incluye un nuevo método missing()que se aplica a grupos de rutas, un alias para la nueva clase Number, una regla de validación extensions, y más. 
Aquí hay más información sobre las nuevas características introducidas esta semana:

Permitir múltiples tipos en el método ensure() de la clase Collection

Ash Allen contribuyó con una actualización al método ensure() de la clase Collection que te permite pasar múltiples tipos en lugar de solo uno:
collect([new User(), new Contact(), new Contact()])
    ->ensure([User::class, Contact::class]);

Permitir missing() en grupos de rutas.

Ronald Edelschaap contribuyó a la capacidad de agregar el callback missing() en los grupos de rutas:
<?php
// Antes
Route::prefix('locations')
    ->group(function() {
        Route::get('{location}', [LocationsController::class, 'show'])
            ->missing(fn() => ['success' => false, 'message' => 'The requested location does not exist']);
        Route::put('{location}', [LocationsController::class, 'update'])
            ->missing(fn() => ['success' => false, 'message' => 'The requested location does not exist']);
        Route::delete('{location}', [LocationsController::class, 'destroy'])
            ->missing(fn() => ['success' => false, 'message' => 'The requested location does not exist']);
    });
 
// Ahora
Route::prefix('locations')
    ->missing(fn() => ['success' => false, 'message' => 'The requested location does not exist'])
    ->group(function() {
        Route::get('{location}', [LocationsController::class, 'show']);
        Route::put('{location}', [LocationsController::class, 'update']);
        Route::delete('{location}', [LocationsController::class, 'destroy']);
    });

Regla de validación extensions.

@eusonlito contribuyó con una regla de validación de extensiones de archivo extensions que puedes utilizar en combinación con la regla de validación de mimes:
['file', 'mimes:jpg,jpeg,png', 'extensions:jpg,png']
La regla extensions se agregó a la documentación, la cual señala que la regla extensions debe usarse en conjunto con la validación del tipo MIME a través de la regla mimes.
Mira el Pull Request #49082 para más detalles.

Alias de la clase Number.

Jamie York contribuyó con el aliasing de la clase Number para su uso rápido en plantillas Blade sin necesidad de importar el namespace completo:
<p>Percentage: {{ Number::percentage(50) }}</p>

Trait Conditionable agregado a la clase TestResponse.

Noboru Shiroiwa contribuyó agregando el trait Conditionable a la clase TestResponse, que puedes utilizar al verificar la respuesta:
test('name', function ($attributes) {
    $user = User::factory()->create($attributes);
 
    $response = $this
        ->actingAs($user)
        ->get('/');
 
    $response
        ->assertOk()
        ->when($attributes['gender'] === 1, fn () => $response->assertSee('Hello boys!'))
        ->when($attributes['gender'] === 2, fn () => $response->assertSee('Hello girls!'));
})->with([
    'boy' => [
        [
            'name' => 'Michael',
            'gender' => 1,
        ],
    ],
    'girl' => [
        [
            'name' => 'Susan',
            'gender' => 2,
        ],
    ],
]);

Notas de la versión.

Puedes ver la lista completa de nuevas características y actualizaciones a continuación, así como la diferencia entre la versión 10.33.0 y 10.34.0 en GitHub. Las siguientes notas de la versión provienen directamente del registro de cambios:


v10.34.0

Link del post original de Lararvel News