Todos los artículos

Laravel 11.27 Lanzado

Julian Beaujardin
Julian Beaujardin October 9th, 2024

Esta semana, el equipo de Laravel lanzó la versión v11.27, con una moneda predeterminada configurable en el helper Number, un método Str::doesntContain(), mejoras en el rendimiento de Schema::hasTable() y más.

Cambiar globalmente la moneda predeterminada del helper Number

Ryan Holton contribuyó con una configuración de moneda predeterminada configurable para el helper Number. La moneda USD sigue siendo la predeterminada, pero ahora puedes definir una predeterminada diferente sin usar el argumento in para sobrescribirla:

use Illuminate\Support\Number;

// Establecer la moneda predeterminada
Number::useCurrency('EUR');

$currency = Number::currency(1000);
// €1.000,00

$currency = Number::currency(1000, in: 'USD');
// $1.000,00

// Código que usa USD y luego vuelve a EUR
Number::withCurrency('USD', function () {
    //
});

Método doesntContain() en String

Ryan Holton contribuyó con el método doesntContain() al helper Str, que es el inverso del método contains():

use Illuminate\Support\Str;

$str = 'Mi comida favorita es Pizza';

Str::doesntContain($str, 'Bistec'); // true
Str::doesntContain($str, 'Pizza'); // false
Str::doesntContain($str, ['Bistec', 'Espagueti']); // true
Str::doesntContain($str, ["Bistec", "Espagueti", "Pizza"]); // false

Mejorar el rendimiento de Schema::hasTable()

Hafez Divandari contribuyó con una actualización de rendimiento al método Schema::hasTable():

El método Schema::hasTable() utiliza internamente el método Schema::getTable(), lo que a veces podría resultar en una consulta costosa. Este PR mejora el rendimiento de Schema::hasTable() utilizando consultas más ligeras.

Añadir soporte para extensiones en Str::inlineMarkdown()

Ryan Chandler añadió soporte para extensiones de markdown en los métodos Str::inlineMarkdown() y str()->inlineMarkdown(), coincidiendo con la actualización en Laravel 11.14 que añadió soporte de extensiones al método markdown().

Métodos del Kernel HTTP para agregar middleware en relación a otros middleware

Ollie Read contribuyó con una actualización al Kernel HTTP que permite la inserción programática del middleware en relación con el middleware existente en la pila de prioridades. Específicamente, introduce dos nuevos métodos públicos:

  • addToMiddlewarePriorityAfter(): inserta middleware después del middleware especificado.
  • addToMiddlewarePriorityBefore(): inserta middleware antes del middleware especificado.

Estos cambios facilitan a los desarrolladores de paquetes gestionar la prioridad del middleware sin requerir intervención del usuario.

Aquí tienes dos ejemplos de la descripción del pull request:

$kernel->addToMiddlewarePriorityAfter(
    \Illuminate\Routing\Middleware\ValidateSignature::class,
    [
        \Illuminate\Cookie\Middleware\EncryptCookies::class,
        \Illuminate\Contracts\Auth\Middleware\AuthenticatesRequests::class,
    ],
);

$kernel->addToMiddlewarePriorityBefore(
    \Illuminate\Routing\Middleware\ValidateSignature::class,
    [
        \Illuminate\Cookie\Middleware\EncryptCookies::class,
        \Illuminate\Contracts\Auth\Middleware\AuthenticatesRequests::class,
    ],
);

Notas de la versión

Puedes ver la lista completa de nuevas características y actualizaciones a continuación, y la diferencia entre 11.26.0 y 11.27.0 en GitHub. Las siguientes notas de la versión son directamente del changelog: