burger menu icon Web^ID
💬 Contact 💬 Contact

07 04 2023

retour à la liste des articles

Les nouveautés de Laravel Nova 4

logo web^id

• écrit par [Web^ID]

marqueur jaune

Laravel Nova 4

La nouvelle version de Laravel Nova, Silver Surfer (version 4), est sortie en avril 2022. Il n'y avait plus eu de mise à jour majeure depuis mars 2020 avec la sortie de Laravel Nova 3 (Orion) qui permettait la compatibilité avec Laravel 7.x.

 

Cette nouvelle version apporte de nombreuses nouvelles fonctionnalités et améliorations. Cela permet de réduire le nombre de packages externes installés pour pouvoir personnaliser l'interface. Elle poursuit les améliorations apportées avec Orion et implémente une nouvelle interface réactive basée sur Tailwind 2, Vue 3 et Inertia.js.

 

Auparavant, il fallait installer un package pour rendre l'interface réactive mais ce dernier n'était pas parfait.

 

De plus, cette version prend en charge le mode sombre nativement 😍 Il n'y a donc plus besoin de passer par un package externe.

 

La recherche permet maintenant de pouvoir rechercher dans les relations et les colonnes JSON d'une ressource. Au niveau des performances, il y a une nette amélioration du chargement des ressources avec beaucoup de relations. Vu que celles-ci ne sont plus chargées par défaut, elles sont enregistrées dans le local storage du navigateur.

 

Les nouveautés marquantes de Laravel Nova 4 

 

Parmi les nouvelles fonctionnalités intéressantes qui ne nécessitent plus de l'installation de packages tiers, nous pouvons trouver :

 

  • L'impersonate

 

Fonctionnalité assez cool qui permet facilement d'usurper l'identité d'un utilisateur pour résoudre les problèmes que celui-ci rencontre. Pour ce faire, rien de plus simple, ajouter le trait Laravel\Nova\Auth\Impersonatable dans le model User et c'est parti.
L'action sera disponible dans le menu d'actions de la ressource.

 

visuel impersonate Laravel Nova 4
  • Menu personnalisé


Dans les anciennes versions de Nova, pour pouvoir personnaliser le menu de la barre latérale gauche, il y avait deux possibilités. Il fallait soit overrider le fichier de navigation de Nova, soit installer le package digital-creative/collapsible-resource-manager qui permettait de vraiment personnaliser son menu avec des groupes de menu repliables. Maintenant, plus besoin d'un package, c'est dans le coeur de Nova. Cela permet de pouvoir personnaliser tous les menus de l'interface.

 

visuel menu personnalisé Laravel Nova 4
  • Duplication de ressource


Directement disponible dans le menu d'action de la ressource, elle permet d'ouvrir le formulaire de création avec toutes les données de la ressource que l'on veut répliquer qui sont prêtes à être modifiées au besoin.

 

visuel duplication de ressource Laravel Nova 4
  • Champs dépendants


Plus besoin de passer par un package tiers pour pouvoir afficher ou non d'autres champs en fonction des valeurs d'un autre. Il suffit de mettre la méthode dependsOn sur le champ qui doit dépendre d'un autre.

 

visuel champs dépendants Laravel Nova 4
  • La personnalisation de l'interface

Plus besoin de créer un thème personnalisé pour pouvoir changer les couleurs primaires de l'interface. On peut même facilement changer le logo utilisé. Tout cela directement dans le fichier de configuration de nova : config/nova.php.

visuel personnalisation de l'interface Laravel nova 4
  • Export de données en CSV


Il est désormais possible d'exporter au format CSV les données d'une ressource facilement. Il suffit d'ajouter l'action Laravel\Nova\Actions\ExportAsCsv dans la ressource Nova.

 

Je vous invite à aller parcourir la documentation de Laravel Nova 4 pour voir l'ensemble des nouvelles améliorations et fonctionnalités.

 

visuel export de données en CSV Laravel Nova 4

La mise à jour vers Laravel Nova 4 peut être longue si vous avez créé un certain nombre de champs, outils, ou encore de cards personnalisés. Avec le changement des dépendances front, il est nécessaire de mettre à niveau ceux utilisés dans les anciens éléments personnalisés.

 

 

Dans les changements que l'on peut observer, il y a :

 

  • L'utilisation de Vue 3 qui nécessite donc l'adaptation du code existant
  • Le remplacement du routeur de Vue par celui de Inertia.js
  • La définition d'une route côté serveur pour que l'élément personnalisé puisse être rendu (pas obligatoire si on entre directement le lien dans le menu et que l'on ne veut pas que ce soit automatique)
  • La suppression de la dépendance laravel-nova car chaque mixin est maintenant intégrée à Nova lui-même.

 

Pour conclure

 

Cette nouvelle version est vraiment intéressante, j'ai hâte de terminer la mise à jour de notre CMS^ID qui est actuellement sur la version 3. C'est bien mieux de ne plus devoir installer plusieurs packages et devoir dépendre d'eux pour faire des choses simples comme personnaliser son menu avec des groupements repliables, pouvoir facilement impersonate un utilisateur, ...

 

Je ne peux que recommander Laravel Nova qui permet facilement d'avoir un panneau d'administration avec Laravel.

filaire image filaire image
Vous souhaitez démarrer rapidement ?
Besoin d'accompagnement ?

Vous voulez en savoir plus ou vous souhaitez nous parler de votre projet ?
Nous sommes à votre disposition !