Laravel 8.76 est disponible
Arthur Monney
@mckenziearts
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 :
// Beforeif ($response->status() === 401) { // ...} if ($response->status() === 403) { // ...} // Afterif ($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
Arthur Monney
@mckenziearts
Fullstack Designer - Laravel & React Developer. Laravel Cameroon Organizer @laravelcm | @shopperlabs