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;23RateLimiter::for(4 GlobalRateLimit::HUBSPOT,5 fn () => Limit::perSecond(100, 10)6);1use Illuminate\Support\Facades\RateLimiter;23RateLimiter::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;23public function middleware(): array4{5 return [6 new RateLimited(GlobalRateLimit::HUBSPOT)7 ];8}1use Illuminate\Queue\Middleware\RateLimited;23public 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 example2//4// ...5$process->stop();67//8// Pool example9//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();1415// Stop the processes gracefully16$this->pool->stop();1718// Stop the processes with a specific signal19$this->pool->stop($signal);1// Single process example2//4// ...5$process->stop();67//8// Pool example9//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();1415// Stop the processes gracefully16$this->pool->stop();1718// 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;23use Illuminate\Database\Eloquent\Factories\HasFactory;4use Illuminate\Database\Eloquent\Model;56class Post extends Model7{8 use HasFactory;9}1namespace App\Models;23use Illuminate\Database\Eloquent\Factories\HasFactory;4use Illuminate\Database\Eloquent\Model;56class Post extends Model7{8 use HasFactory;9}
Avec la nouvelle release 11.26 :
1namespace App\Models;23use Illuminate\Database\Eloquent\Factories\HasFactory;4use Illuminate\Database\Eloquent\Model;56class Post extends Model7{8 /** @use HasFactory<\Database\Factories\PostFactory> */9 use HasFactory;10}1namespace App\Models;23use Illuminate\Database\Eloquent\Factories\HasFactory;4use Illuminate\Database\Eloquent\Model;56class Post extends Model7{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