Laravel - 10 packages indispensables

Laravel - 10 packages indispensables

Tech web
Cloche d'abonnement aux notifications | |
  • Recevoir les notifications

Développer une application avec le framework Laravel est un vrai plaisir. La documentation est claire, le code logique et élégant, la communauté bienveillante.

Au fil du temps, de nombreux paquets (packages) pour Laravel ont été développés par des membres de la communauté. Ils sont publiés dans le repository Composer packagist.org. Ces paquets, composés principalement de code PHP permettent de réaliser des opérations diverses qui ne sont pas directement prises en charge par le framework.

Après plusieurs années d’utilisation de Laravel, une dizaine de paquets ressortent du lot du fait de leur efficacité et leur praticité. Soit je les utilise régulièrement, soit ils se sont montrés particulièrement efficaces pour la réalisation d’un travail.

Laravel Debugbar

par barryvdh - Lien

Ce paquet permet l’affichage d’informations de profiling de votre projet Laravel. L’utilisation de la base de données (nombre de requêtes), des templates (vues), des modèles, du cache ou encore des permissions, sera visible lors du développement de votre application.

Ces informations se révèlent particulièrement pratiques pour déboguer, trouver la raison de ralentissements, etc.

Ce paquet est une adaptation pour Laravel de PHP Debug Bar.

laravel-debugbar

Laravel Telescope

par l'équipe Laravel - Lien

Toujours dans le domaine du débogage, ce paquet Laravel rajoute une interface de visualisation d’informations relatives au fonctionnement de l’application. Il se démarque de Larvel Debugbar de par sa capacité à pouvoir collecter des informations d’une application en production.

Au prix de très légères pertes de performance dues à la collecte des données, il devient possible d’analyser les événements se déroulant au cours de la vie de votre application. Il est par exemple possible de visualiser les requêtes faites par les autres utilisateurs, les logs, les tâches planifiées, etc.

Laravel Recaptcha V3

par josiasmontag - Lien

Concernant la lutte contre le spam, le paquet Laravel reCAPTCHA v3 se révèle particulièrement pratique. Facile à configurer et à utiliser, il permet d’accepter ou de refuser l’envoi de formulaires en fonction du score retourné par le service reCAPTCHA. Lorsque le score est proche de zéro, il est probable que l’envoi vienne d’un bot, tandis que lorsqu’il est plus proche de 1, il s’agit probablement d’un humain. Il nous reste plus qu’à fixer un seuil à partir duquel on refuse les envois de formulaire, par exemple 0.5.

Laravel Dompdf

par barryvdh - Lien

Pouvoir créer des PDFs est une fonctionnalité qui nous a été demandée à plusieurs occasions. Laravel Dompdf, paquet créé par le même auteur que Laravel Debugbar, est un outil particulièrement pratique pour générer des PDFs dans une application Laravel. Les limitations sont les mêmes que pour Dompdf, le paquet originel : Toutes les règles CSS ne sont pas supportées, de même pour l’HTML. Le JavaScript pour sa part n’est pas pris en compte. Néanmoins, après quelques essais, il devient tout à fait possible de créer la mise en page souhaitée.

Deployer

par antonmedv - Lien

Déployer de manière scriptée son application sur le serveur de développement ou de production peut s’avérer très pratique. Il n’est ainsi plus nécessaire d’exécuter les commandes ou manipulations manuellement. Ces tâches qui peuvent s’avérer délicates et chronophages sont remplacées par une seule commande à exécuter.

Le travail principal dans la mise en place de Deployer est de créer le fichier de déploiement, indiquant les différentes commandes, copies de fichiers, migrations de base de données à réaliser. Il est également indispensable de renseigner l’adresse du serveur sur lequel effectuer la migration. Finalement, ce script peut également être utilisé par des pipelines CI/CD comme GitHub Actions afin de, par exemple, déployer automatiquement son application sur le serveur de déploiement à chaque modification.

dep deploy -- stage=production

Laravel OPcache

par l'équipe d'Appstract - Lien

OPcache est une fonctionnalité PHP facultative permettant d’optimiser les performances de son application en stockant le bytecode en mémoire partagée. En effet, lorsque l’application est exécutée, les scripts PHP sont convertis en OPcode, un langage compris par le serveur. Lors de la première exécution, cet OPcode est mémorisé, évitant ainsi de devoir convertir à chaque requête nos scripts PHP en OPcode. Le revers de cette procédure est que lors de modifications de notre code PHP “source”, celui-ci ne va pas être reconverti en OPcode. C’est pourquoi, il est nécessaire de purger l’OPcache après chaque modification de notre code. C’est là qu’entre en scène Laravel OPcache qui permet, par une simple commande Artisan de purger l’OPcache. Cette commande est notamment utilisée par nos scripts de déploiement, afin de s’assurer que l’OPcache est purgé à chaque nouvelle version de l’application.

Laravel Backup

par Spatie - Lien

Posséder une sauvegarde de son application peut s’avérer précieux en cas de défaillance serveur ou de mauvaise manipulation. Laravel Backup permet justement de sauvegarder l’ensemble des fichiers et base de données de son logiciel. Il est également possible de planifier le nettoyage des anciennes sauvegardes : par exemple conserver les sauvegardes des 7 derniers jours, conserver une sauvegarde par semaine pendant 8 semaines et effacer les sauvegardes plus anciennes. Le paquet permet d’être notifié par mail ou sur slack lorsqu’une sauvegarde est réalisée ou qu’elle échoue. Finalement, il ne reste plus qu’à créer un script de duplication de sauvegardes, afin d’éviter qu’une panne matérielle du serveur n’efface non seulement les fichiers du site, mais aussi les sauvegardes.

php artisan backup:run

Laravel MediaLibrary

par Spatie - Lien

La gestion des fichiers, d’images, la création de thumbnails, etc. peut vite s’avérer complexe. C’est dans l’optique de simplifier cela que j’utilise Laravel MediaLibrary. Ce paquet permet de lier des fichiers à des entités Laravel. Par exemple : un produit pourrait avoir une image recto et une image verso.

De plus, pour ce qui est des images, le paquet permet la création à la volée d’autres versions de l’image (noir et blanc, avec watermark, redimensionnée, coupée, etc.).

Laravel Permission

par Spatie - Lien

L’implémentation d’un système de droits d’accès se révèle parfois nécessaire. Par exemple, les articles d’un site peuvent être modifiés par des éditeurs et le design seulement par des administrateurs. Laravel propose de base un système d’autorisations, mais Laravel Permission le rend beaucoup plus agréable à utiliser. Il rend facile le fait d’attribuer des permissions ou rôles à des utilisateurs, permet d’ajouter d’afficher des éléments de manière conditionnelle ou encore de restreindre certaines URL à des rôles spécifiques.

Laravel Multilingual Routes

par chinleung - Lien

La création d’une application multilingue implique une certaine réflexion autour de la logique du projet, notamment en ce qui concerne la gestion des URL. Dans cette optique, Laravel Multilingual Routes se révèle particulièrement efficace. Il simplifie la création de ses routes, permet de traduire les URL dans chacune des langues de son application et fournit des helpers pour générer des URL multilingues.

// Déclarer une route multilangue, par exemple fr et en.
Route::multilingual('/', 'SiteController')->name('index');

// Obtenir l'URL de la route index dans la locale courante
localized_route('index');

// Obtenir l'URL de la route index dans la locale fr. Exemple : mon-site.ch/fr/
localized_route('index', [], 'fr');

Voilà pour ce petit tour d’horizon. Dans le cadre de vos projets, vous avez peut-être vous aussi utilisé des paquets que vous jugez incontournables, n’hésitez pas à m’en faire part par email !

Catégories :
Tech web

Tags :
PHP Laravel

Vous avez aimé cet article ? Suivez-nous sur Facebook pour ne rien manquer !