Laravel Open Source PHP
2 min de lecture 100 vues

Laravel 8.79 est disponible

mckenziearts

Arthur Monney

@mckenziearts

Laravel 8.79 est disponible

L'équipe Laravel a publié la version 8.79 avec une recherche en full-text pour MySQL et PostgreSQL, de nouvelles méthodes pour la classe Stringable et les dernières modifications de la branche v8.x.

Méthode de pagination onLastPage()

Johan van Helden a contribué une méthode onLastPage() au Paginator qui permet de clarifier la logique autour de la dernière page :

@if ($paginator->onFirstPage())
{{-- ... --}}
@endif
 
{{-- Before --}}
@if (!$paginator->hasMorePages())
{{-- ... --}}
@endif
 
{{-- After --}}
@if ($paginator->onLastPage())
{{-- ... --}}
@endif

Autoriser les dépendances typées

Léo Colombaro a contribué la possibilité d'utiliser variadic pour l'injection de dépendances lors de l'appel d'un callable. Voici un exemple tiré de la pull request :

$app->bind(Filter::class, function ($app) {
return [
$app->make(NullFilter::class),
$app->make(ProfanityFilter::class),
$app->make(TooLongFilter::class),
];
});
 
$app->call(function (Logger $logger, Filter ...$filters) {
// ...
});

Implementation de la recherche full-text pour MySQL et PostgreSQL

Dries Vints contribue à la recherche full-text en langage naturel pour MySQL et PostgreSQL. Voici quelques exemples tirés de la Pull Request #40129 :

Schema::create('articles', function (Blueprint $table) {
$table->id('id');
$table->string('title', 200);
$table->text('body');
$table->fulltext(['title', 'body']);
});
 
// Search for "databases" in the title and body fulltext index...
$articles = DB::table('articles')
->whereFulltext(['title', 'body'], 'database')
->get();
 
// Search for "databases" in the title and body fulltext index with boolean mode...
$articles = DB::table('articles')
->whereFulltext(['title', 'body'], 'database', ['mode' => 'boolean'])
->get();
 
// Search for "databases" in the title and body fulltext index with an expanded query...
$articles = DB::table('articles')
->whereFulltext(['title', 'body'], 'database', ['expanded' => true])
->get();

Nouvelles méthodes Stringable

Travis Elkins a contribué deux méthodes Stringable, whenContains() et whenContainsAll() :

// Before
$stringable = Str::of('some important announcement');
 
if ($stringable->contains(['important', 'emergency'])) {
$stringable->upper();
}
 
return (string) $stringable;
 
// After
return (string) Str::of('some important announcement')
->whenContains(
['important', 'emergency'],
fn (Stringable $stringable) => $stringable->upper(),
);
}

La méthode whenContainsAll() fonctionnerait de la même manière. Cependant, la chaîne doit contenir toutes les correspondances attendues pour que la condition soit true et déclenche l'appel de fermeture.

Travis Elkins a également contribué d'autres méthodes Stringable dans la Pull Request #40320 :

  • endsWith()
  • exactly()
  • is()
  • isAscii()
  • isUuid()
  • test()
  • startsWith()

Notes de version

Vous pouvez consulter la liste complète des nouvelles fonctionnalités et des mises à jour ci-dessous, ainsi que les différences entre les versions 8.78.0 and 8.79.0 sur GitHub. Les notes de mise à jour suivantes sont directement issues des notes de mise à jour de la version 8.79.0

Cet article a été initialement publié sur Laravel News

mckenziearts

Arthur Monney

@mckenziearts

Fullstack Designer - Laravel & React Developer. Laravel Cameroon Organizer @laravelcm | @shopperlabs

Vous aimez cet article ? Faite le savoir en partageant