Laravel Open Source PHP
2 min de lecture 126 vues

Laravel 8.76 est disponible

mckenziearts

Arthur Monney

@mckenziearts

Laravel 8.76 est disponible

L'équipe Laravel a publié la version 8.76 avec une méthode de test afterRefreshingDatabase(), la prise en charge du modificateur invisible de MySQL, une nouvelle méthode pour les chaînes de caractères et les dernières modifications de la branche v8.x.

Méthode de test After Refreshing Database

Luke Downing a apporté une méthode afterRefreshingDatabase que vous pouvez utiliser dans les tests lorsque vous souhaitez pré-remplir certaines données dans un test directement après avoir exécuté des migrations (voir la description de la PR pour plus de détails).

Voici un exemple tiré de la pull request sur la façon d'utiliser cette méthode :

abstract class TestCase extends BaseTestCase
{
use CreatesApplication;
use LazilyRefreshDatabase;
 
protected function afterRefreshingDatabase()
{
$this->artisan('db:seed', [
'--class' => RoleAndPermissionSeeder::class
]);
}
}

Personnalisation de la liaison de route pour les Models enfants (Child Model Route Binding)

marvin-wtt a contribué à remplacer la résolution des liaisons de route des modèles enfants par la méthode resolveRouteBindingQuery. Consultez la Pull Request #39929 pour plus de détails.

Vérifications booléennes du code d'état des erreurs 4xx

Adam Rodriguez a ajouté une méthode forbidden() et unauthorized à la classe Response. Ces méthodes nettoient bien la logique autour de ces statuts :

// Before
if ($response->status() === 401) {
// ...
}
 
if ($response->status() === 403) {
// ...
}
 
// After
if ($response->unauthorized()) {
// ...
}
 
if ($response->forbidden()) {
// ...
}

Modificateur invisible pour les colonnes MySQL

Oliver Matla a contribué un modificateur invisible, introduit dans MySQL v8.0.23. Lorsque des colonnes sont marquées comme invisibles, elles ne sont pas implicitement (i.e., SELECT *) et donc pas hydratées dans les modèles Laravel. Ces colonnes peuvent toujours être sélectionnées explicitement, ce qui rend utile leur omission, sauf si vous avez explicitement besoin des données :

Schema::table('users', function (Blueprint $table) {
$table->string('secret')->nullable()->invisible();
});

Cette fonctionnalité n'est actuellement disponible que pour MySQL.

Support des chaînes de caractères pour substr_replace()

Ralph J. Smit a apporté substrReplace() aux classes Str et Stringable :

// Insert a string at a certain position
$string = '1300';
 
$result = Str::substrReplace($string, ':', 2, 0);
// '13:00'
 
// Replace the remainder of a string
$result = (string) Str::of('Laravel Framework')
->substrReplace('– The PHP Framework for Web Artisans', 8);
// 'Laravel – The PHP Framework for Web Artisans'

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.75.0 et 8.76.0 sur GitHub en consultant le fichier Changelog.

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