Catégories
Laravel

Au menu cette semaine, Laravel 6.13

Comme chaque semaine, l’équipe de Laravel nous offre une nouvelle version de notre framework préféré, cette semaine on découvre la 6.13.

Voyons tout de suite ce que cette nouvelle version a dans le ventre. !

Les ajouts de Laravel 6.13

Ajout d’une option –api à la commande make:model

L’ajout de cette option va permettre des choses intéressantes. Suis moi !

Elle va par exemple te permettre de générer un controller d’API pour un model en même temps que tu créeras le modèle :

php artisan make:model Order --api

Tu pourras aussi créer une factory, un seeder, une migration, une ressource et aussi un controller d’API dans la même commande. Dingue !!

php artisan make:model Order --all --api

Enfin tu pourras aussi générer un controlleur avec toutes ses ressources et également le controller d’API avec la commande suivante :

php artisan make:model Order --resource --api

(#31197, #31222)

Ajout d’une méthode PendingResourceRegistration::shallow()

Parfois, il est nécessaire d’avoir des resources imbriquées. Par exemple une ressource photo peut avoir de multiples commentaires.

Grâce à cette nouvelle méthode shallow, plutôt que d’avoir une forme de répétition comme ci-dessous :

Route::resource('photos', 'PhotoController')->only(['index', 'create', 'store']);
Route::resource('comments', 'CommentController')->only(['show', 'edit', 'update', 'destroy']);

tu pourras plus élégamment utiliser la syntaxe suivante :

Route::resource('photos.comments', 'CommentController')->shallow();

Cette syntaxe permettra de générer le tableau de route suivant :

(#31208104c539)

Laravel 6.13 : Formatage autorisé d’un attribut implicite à l’aide d’une closure

Ajout d’une méthode setImplicitAttributesFormatter au validateur qui permet à l’instance d’afficher en sortie :

age at line 1 must be an integer

au lieu de

0.age must be an integer

validator(
    [['age' => 'thirty']],
    ['*.age' => 'integer']
)->setImplicitAttributesFormatter(function ($attribute) {
    [$line, $attribute] = explode('.', $attribute);

    return sprintf('%s at line %d', $attribute, $line + 1);
})->validate();

(#31246)

Ajout d’une méthode FileSystem::ensureDirectoryExists()

Comme son nom peut te le faire penser cette méthode va simplement permettre de vérifier l’existence d’un répertoire.

(8a8eed4)

Ajout de la prise en charge de la méthode Storage::url() pour le pilote Ftp

Cette méthode va te permettre de générer une url pour les fichiers qui auront étés stockés sur le disque ftp en utilisant la méthode Storage::url(). Cela fonctionnera de la même façon que pour le disk local ou s3.

(#31258b8790e5)

Les bugs fixés par Laravel 6.13

4 bugs ont étés corrigés par cette nouvelle version :

  • Fixed laravel migrations when migrating to sql server (dropColumn with default value) (#31229)
  • Fixed handleBeginTransactionException() method calling pdo property instead of getPdo() method (#31233)
  • Fixed channel names when broadcasting via redis (#31261)
  • Replace asterisks before validation (#31257)

Le changement apporté par cette version

Reset timeout handler after worker loop (#31198)

On se dit à la semaine prochaine ?

Allez on se donne rendez vous mardi prochain, si tout va bien pour une éventuelle nouvelle version, may be la 6.14 😉

D’ici là, tu peux apprendre comment installer Laravel en moins de 5 minutes, prendre en main Laragon et comprendre pourquoi il est indispensable ou encore découvrir les apports de Laravel 6 qui est je te le rappelle la nouvelle LTS.

Allez, à plus !

Abonnement unique O2Switch à 5€/mois

Par HappyToDev

Absolument passionné depuis toujours par l'informatique et la programmation, je souhaite via ce blog vous faire passer un peu du savoir que j'ai accumulé depuis des années.
Et même, pourquoi pas, vous aider à faire le premier pas dans le développement web.

Vous êtes prêts ?
Alors allons y ensemble et n'oubliez pas que les débutants sont vraiment les bienvenus.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.