Comment développer un paquet en local ?
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
PHPUnit : conseils et astuces qui nous ont vraiment aidés
Nous utilisons PHPUnit tous les jours pour tester notre code. Voici une sélection de tips qui nous ont vraiment aidés !
Mathieu De Gracia
Les bases : Création du contrôleur
Découverte des contrôleurs au sein d'une application Laravel
William Suppo
Initiation à l’analyse de code
Initiez-vous à l'analyse de code grace à phpmetrics !
Mathieu De Gracia