Remarques rendus : Laravel 2022 2023 revue de mi projet - HE-Arc/slides-devweb GitHub Wiki

Bonne pratique UI

Sur la page d'enregistrement d'un nouvel utilisateur, il faudrait idéalement demander à l'utilisateur de rentrer son mot de passe 2 fois pour éviter les erreurs de saisies côté utilisateur.

Lorsque l'utilisateur fait une erreur de saisie dans un formulaire, ne réinitialisez pas les données du formulaire, c'est embêtant pour l'utilisateur final.

Dans vos formulaires, essayez idéalement d'afficher les erreurs en lien avec un champ précis directement sous le champ en question pour simplifier la compréhension.

Bonne pratique URL

Une bonne pratique est d'écrire les URLs en respectant la convention kebab-case, plus lisible et plus répandu.

Migrations

Attention aux migrations ! Il a beaucoup d'erreurs dans vos migrations de manière générale, vous oubliez également dans certaines migrations d'implémenter la fonction down(). Les migrations ne sont pas évaluées dans le rendu intermédiaire, mais le sera dans le rendu final.

Dans les migrations la convention est le snake_case pour le nom des champs ainsi que pour le nom des tables.
Voici un exemple pour le nom d'une table train_stations et pour le nom d'un champ train_name.
Le nom des tables prend un "s" à la fin, p. ex. train_stations et non pas train_station.

Model-binding

Utilisez le model-binding dans vos contrôleurs, c'est une bonne pratique et vous simplifierez certaines requêtes.
Nous avons ce point dans le workshop, je vous laisse donc vous renseigner par vous-même ou revenir vers moi pour des détails.

Validations

Lorsque vous faites de la validation d'entrées et que vous utilisez le "mass assignment" avec create() ou update(), une bonne pratique est de faire create($request->validated()).
Si vous ne faites pas cela, le problème c'est que d'autres champs pourraient être acceptés et c'est une potentielle faille de sécurité.

Dans vos contrôleurs, les entrées de la fonction update() doivent aussi être validées.

Gestion d'erreurs côté Laravel

Autant que possible traitez les potentielles erreurs avec Eloquent. À la place de faire juste un find($id), faîtes un findOrFail($id).
Le find retourne une erreur 500 (Internal Server Error), ce qui n'est pas facile à comprendre pour le client, car très général. Le findOrFail renvoie une 404 (Not Found), ce code est bien plus clair et permet de comprendre que la ressource n'existe pas.
De manière général, si vous préférez ou si un équivalent Eloquent n'existe pas, vous pouvez aussi traiter l'erreur en utilisant des try/catch (mais favorisez les fonctions fournies par Eloquent directement).