Laravel 8.79 est disponible
Arthur Monney
@mckenziearts
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; // Afterreturn (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
Arthur Monney
@mckenziearts
Fullstack Designer - Laravel & React Developer. Laravel Cameroon Organizer @laravelcm | @shopperlabs