La team Laravel a publié la version 11.26 cette semaine, avec la possibilité d'arrêter un pool de processus, l'utilisation d'Enums pour définir la limitation des taux (Rate Limiting), une commande Artisan pour créer un Job Middleware et plus encore.
#Utiliser BackedEnum pour Rate Limiting
Seth Phat a contribué à l'utilisation de BackedEnum et UnitEnum pour enregistrer un rate limiter:
1use Illuminate\Support\Facades\RateLimiter;2 3RateLimiter::for(4 GlobalRateLimit::HUBSPOT,5 fn () => Limit::perSecond(100, 10)6);1use Illuminate\Support\Facades\RateLimiter;2 3RateLimiter::for(4 GlobalRateLimit::HUBSPOT,5 fn () => Limit::perSecond(100, 10)6);
Vous pouvez également les utiliser le RateLimited queue job :
1use Illuminate\Queue\Middleware\RateLimited;2 3public function middleware(): array4{5 return [6 new RateLimited(GlobalRateLimit::HUBSPOT)7 ];8}1use Illuminate\Queue\Middleware\RateLimited;2 3public function middleware(): array4{5 return [6 new RateLimited(GlobalRateLimit::HUBSPOT)7 ];8}
#Ajout de la commande make:job-middleware
Davey Shafik a contribué à la création de la commande Artisan make:job-middleware pour créer un nouveau job middleware dans le namespace App\Jobs\Middleware :
1php artisan make:job-middleware RateLimited1php artisan make:job-middleware RateLimited
#Ajout de la méthode a stop() pour Process et Pool
Mathias Hansen a contribué à une mise à jour permettant d'arrêter tous les processus en cours d'exécution dans un pool :
1// Single process example 2// 3$process = Process::timeout(120)->start('bash import.sh'); 4// ... 5$process->stop(); 6 7// 8// Pool example 9//10$this->pool = Process::pool(function (Pool $pool) {11 $pool->path(base_path())->command('sleep 5');12 $pool->path(base_path())->command('sleep 10');13})->start();14 15// Stop the processes gracefully16$this->pool->stop();17 18// Stop the processes with a specific signal19$this->pool->stop($signal); 1// Single process example 2// 3$process = Process::timeout(120)->start('bash import.sh'); 4// ... 5$process->stop(); 6 7// 8// Pool example 9//10$this->pool = Process::pool(function (Pool $pool) {11 $pool->path(base_path())->command('sleep 5');12 $pool->path(base_path())->command('sleep 10');13})->start();14 15// Stop the processes gracefully16$this->pool->stop();17 18// Stop the processes with a specific signal19$this->pool->stop($signal);
#Ajout d'une annotation pour les Factory via make:model
Punyapal Shah a contribué à une mise à jour de la commande make:model qui inclura une annotation générique pour le trait HasFactory. Cela aidera les IDE à comprendre le type de factory retourné pour un appel Model::factory() .
Avant Laravel 11.26, le stub générait le code :
1namespace App\Models;2 3use Illuminate\Database\Eloquent\Factories\HasFactory;4use Illuminate\Database\Eloquent\Model;5 6class Post extends Model7{8 use HasFactory;9}1namespace App\Models;2 3use Illuminate\Database\Eloquent\Factories\HasFactory;4use Illuminate\Database\Eloquent\Model;5 6class Post extends Model7{8 use HasFactory;9}
Avec la nouvelle release 11.26 :
1namespace App\Models; 2 3use Illuminate\Database\Eloquent\Factories\HasFactory; 4use Illuminate\Database\Eloquent\Model; 5 6class Post extends Model 7{ 8 /** @use HasFactory<\Database\Factories\PostFactory> */ 9 use HasFactory;10} 1namespace App\Models; 2 3use Illuminate\Database\Eloquent\Factories\HasFactory; 4use Illuminate\Database\Eloquent\Model; 5 6class Post extends Model 7{ 8 /** @use HasFactory<\Database\Factories\PostFactory> */ 9 use HasFactory;10}
#Notes de version
Vous pouvez consulter la liste complète des nouvelles fonctionnalités et des mises à jour ci-dessous, ainsi que la différence entre les versions 11.25.0 et 11.26.0 sur GitHub en consultant le fichier changelog
Ceci est un article traduit provenant du site Laravel news. L'article original est accessible via ce lien