Lanzamiento de Laravel 9.40 |  Noticias de Laravel

Lanzamiento de Laravel 9.40 | Noticias de Laravel

El equipo de Laravel lanzó 9.40 esta semana con una nueva clase de utilidad de lotería, nuevas reglas de validación, afirmación de una redirección a una ruta con nombre y más.

Clase de utilidad de lotería

tim macdonald contribuyó un Lottery clase de soporte que se puede usar en varios contextos, como muestreo de datos aleatorios, informes de fallas, etc.

Aquí hay un ejemplo de una API básica:

1Lottery::odds(1, 10)->choose();

2 

3// returns `true` for "win"

4// returns `false` for "loss"

5 

6Lottery::odds(1, 10)

7 ->winner(fn () => 'winner')

8 ->loser(fn () => 'loser')

9 ->choose();

10 

11// returns `"winner"` for "win"

12// returns `"loser"` for "loss"

Aquí hay algunos ejemplos específicos de Laravel del solicitud de extracción, donde Lottery podría usarse junto con otras características de Laravel. En el siguiente ejemplo, el Lottery cadena de llamada devuelve un callable instancia que puede registrar como controlador en varios eventos de Laravel:

1// Randomly sample so we don't flood our error handler...

2 

3DB::whenQueryingForLongerThan(

4 Interval::seconds(2),

5 Lottery::odds(1, 100)->winner(fn () => report('DB queries exceeded 2 seconds'))

6);

7 

8// Randomly sample so we don't flood our error handler...

9 

10Model::handleLazyLoadingViolationUsing(Lottery::odds(1, 5000)->winner(function ($model, $relation) {

11 report(new LazyLoadingViolationException($model, $relation));

12}));

El Laravel documentacion de ayudas tiene ejemplos del uso de esta clase y cómo probarla también.

Observadores de modelos elocuentes enumerados en el comando model:show

mike healy contribuyó con una actualización de la model:show comando que enumera observadores modelo para un modelo dado:

Ejemplo de visualización de template:watcher

También maneja múltiples observadores adjuntos a la misma acción de modelo. La lista de observadores es útil para encontrar rápidamente observadores listados para un modelo sin buscar llamadas de proveedores de servicios.

Reglas de validación de minúsculas y mayúsculas

tim macdonald contribuyó un lowercase regla de validación, que requiere que la entrada validada esté en minúsculas. Esto puede ser útil cuando no desea cambiar silenciosamente la información del usuario a minúsculas, pero quiere asegurarse de que solo inserten minúsculas. Por ejemplo, una entrada para crear un usuario de base de datos pero que requiere que el usuario esté todo en minúsculas.

1Validator::make(

2 ['name' => 'Admin'],

3 ['name' => 'required|string|lowercase']

4);

miguel nabil contribuyó un uppercase regla de validación que asegura que la entrada dada está en letras mayúsculas:

1Validator::make(

2 ['name' => 'ADMIN'],

3 ['name' => ['required', 'string', 'uppercase']

4);

Afirmar redireccionamiento a una ruta

Zaher Gaibeh contribuyó un assertRedirectToRoute método que puede usar para afirmar que una respuesta es una redirección a una ruta nombrada determinada:

1this->get('test-route')

2 ->assertRedirectToRoute('named-route');

Guarde muchos modelos con tranquilidad

niels contribuyó un saveManyQuietly método de guardar silenciosamente varios modelos porque pertenece a muchos y tiene una o más relaciones.

1$model->saveManyQuietly($relatedModels);

Notas de lanzamiento

Puede ver la lista completa de nuevas funciones y actualizaciones a continuación y la diferencia entre 9.39.0 y 9.40.0 en GitHub. Las siguientes notas de la versión provienen directamente de registro de cambios:

v9.40.0

Adicional

  • Incluya observadores de modelos elocuentes en el comando model:show (#44884)
  • Se agregó la regla de validación «minúsculas» (#44883)
  • Introducir Lottery clasificar (#44894)
  • Adicional /Illuminate/Testing/TestResponse::assertRedirectToRoute() (#44926)
  • Agregue una regla de validación de mayúsculas (#44918)
  • Se agregó saveManyQuietly a hasOneOrMany y existeToMany(#44913)

Fijado

  • Se corrigieron HasAttributes::getMutatedAttributes para clases con argumentos de constructor (#44829)

enmendado

  • Eliminar la asignación de argumentos para la consola (#44888)
  • Pase $maxExceptions de correoable a trabajo subyacente al poner en cola(#44903)
  • Hacer público::esRunningHot (#44900)
  • Agregue un método para que pueda anular el formato de contexto de excepción (#44895)
  • Agregue un espacio de ancho cero a los caracteres recortados en el middleware TrimStrings (#44906)
  • Mostrar error si falla key:generar comando artesanal (#44927)
  • Comprobación de la versión de la base de datos actualizada para el bloqueo de PlanetScale (#44925)
  • Mover función sin Papelera en DatabaseRule(#44938)
  • Utilice la conexión de escritura en Schema::getColumnListing() y Schema::hasTable() para MySQL y PostgreSQL (#44946)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *