Laravel 11.26 Lanzado
El equipo de Laravel lanzó la versión 11.26 esta semana, con la capacidad de detener de manera ordenada un conjunto de procesos, el uso de Enums al definir la Limitación de Tasa, un comando Artisan para crear Middleware de Trabajos y más.
Usar BackedEnum con Limitadores de Tasa
Seth Phat contribuyó con el uso de BackedEnum
y UnitEnum
para registrar un limitador de tasa:
use Illuminate\Support\Facades\RateLimiter;
RateLimiter::for(
GlobalRateLimit::HUBSPOT,
fn () => Limit::perSecond(100, 10)
);
También puedes usarlos con el middleware de trabajos en cola RateLimited
:
use Illuminate\Queue\Middleware\RateLimited;
public function middleware(): array
{
return [
new RateLimited(GlobalRateLimit::HUBSPOT)
];
}
Agregar el Comando Artisan make:job-middleware
Davey Shafik contribuyó con el comando Artisan make:job-middleware
para crear un nuevo middleware de trabajos en el espacio de nombres App\Jobs\Middleware
:
php artisan make:job-middleware RateLimited
Agregar el Método stop() a Process y Pool
Mathias Hansen contribuyó con una actualización para detener todos los procesos en un grupo de manera ordenada:
//
// Ejemplo de proceso único
//
$process = Process::timeout(120)->start('bash import.sh');
// ...
$process->stop();
//
// Ejemplo de grupo
//
$this->pool = Process::pool(function (Pool $pool) {
$pool->path(base_path())->command('sleep 5');
$pool->path(base_path())->command('sleep 10');
})->start();
// Detener los procesos de manera ordenada
$this->pool->stop();
// Detener los procesos con una señal específica
$this->pool->stop($signal);
Agregar una Anotación Genérica de Fábrica con make:model
Punyapal Shah contribuyó con una actualización al comando make:model
que incluirá una anotación genérica para el trait HasFactory
. Esto ayudará a los IDEs a entender el tipo de fábrica que devuelve una llamada a Model::factory()
.
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
use HasFactory;
}
Con el lanzamiento de Laravel 11.26:
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
/** @use HasFactory<\Database\Factories\PostFactory> */
use HasFactory;
}
Notas de la Versión
Puedes ver la lista completa de nuevas características y actualizaciones a continuación, y la diferencia entre 11.25.0 y 11.26.0 en GitHub. Las siguientes notas de la versión son directamente del cambio de registro: