1. Accueil
  2. Articles
2 min de lecture
129 vues

Laravel 11.24 nouvelle release

Image d'illustration pour Laravel 11.24 nouvelle release

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(): array
4{
5 return [
6 new RateLimited(GlobalRateLimit::HUBSPOT)
7 ];
8}
1use Illuminate\Queue\Middleware\RateLimited;
2 
3public function middleware(): array
4{
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 RateLimited
1php 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 gracefully
16$this->pool->stop();
17 
18// Stop the processes with a specific signal
19$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 gracefully
16$this->pool->stop();
17 
18// Stop the processes with a specific signal
19$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 Model
7{
8 use HasFactory;
9}
1namespace App\Models;
2 
3use Illuminate\Database\Eloquent\Factories\HasFactory;
4use Illuminate\Database\Eloquent\Model;
5 
6class Post extends Model
7{
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