Vous souhaitez ajouter une fonctionnalité à votre application via un paquet ? Voici un tour d’horizon de la phase de développement.
On admet qu’on dispose d’une application qui a un fichier composer.json
à sa racine.
Petit rappel, ce fichier est la carte d’identité de votre application, il contient sa définition et ses exigences, notamment vis à vis de ses dépendances.
Créer le paquet
On va créer le dossier de notre paquet au même niveau d'arborescence que celui de notre application :
1mkdir tuto-hello-world2cd tuto-hello-world3composer init
Ensuite on répond au questionnaire en indiquant notamment que l’on développe une library
, ainsi on obtient un fichier composer.json
semblable à ceci :
1{ 2 "name": "tuto/hello-world", 3 "description": "Développement d'un paquet en local", 4 "type": "library", 5 "autoload": { 6 "psr-4": { 7 "Tuto\\HelloWorld\\": "src/" 8 } 9 },10 "require": {}11}
Afin de tester, par la suite, la bonne intégration de notre paquet dans notre application, on crée une classe ici src/Hello.php
qui contient le code suivant :
1<?php 2 3namespace Tuto\HelloWorld; 4 5class Hello 6{ 7 public function say(): string 8 { 9 return 'Hello world';10 }11}
Déclarer la source de votre dépôt
Avant d’intégrer notre paquet à notre application, il est nécessaire que celle-ci est connaissance de l’emplacement du paquet, pour cela on rajoute un repository
de cette manière :
1composer config repositories.package path ../tuto-hello-world
A partir de maintenant, composer va chercher des paquets correspondants à ses dépendances sur le site Packagist mais aussi au niveau du chemin que l’on a renseigné, c’est à dire le paquet en développement.
Définir votre paquet comme dépendance
Cette étape est commune à tous les paquets, on déclare la dépendance comme ceci :
1composer require tuto/hello-world:*
Cela aura pour effet d’intégrer le paquet dans le dossier vendor
de notre application via un lien symbolique, ce qui veut dire que l’on peut modifier les sources de notre paquet indistinctement depuis le dossier de notre application ou bien celui de notre paquet, plutôt pratique n’est-ce pas ?
Et voilà, on peut dorénavant utiliser notre classe Tuto\HelloWorld\Hello
n'importe où dans notre application !
A lire
Autres articles de la même catégorie

Gagner en performance en évitant les requêtes N+1
Rendez vos applications plus efficientes en éliminant les requêtes superflues !

Rémy Guillermic

Stratégies de performances en Laravel
Explorons trois stratégies de performance permettant d'améliorer les performances de votre application Laravel.

Mathieu De Gracia

#1 découverte FilamentPHP : installation & listing
Premier article de cette série de tutoriels, découvrons les bases de FilamentPHP en créant un listing des utilisateurs !

Mathieu De Gracia