TP Composer
Initialisation
Composer est le gestionnaire de paquets de PHP. Il peut être comparé à npm
pour Javascript ou pip
pour Python.
Créez un nouveau dossier et déplacez-vous y dans votre terminal.
Pour initialiser un projet avec Composer, vous pouvez exécuter la commande composer init
.
La commande est intéractive, vous pouvez vous référer au bloc ci-dessous pour les valeurs à fournir.
Pour les autres champs, vous pouvez simplement appuyer sur Entrée
pour ne pas mettre de valeur.
Package name : <vendor>/<package>
Author : Prénom NOM <email@domain.ltd>
Package Type : project
Define your dependencies.
Would you like to define your dependencies (require) interactively [yes]? no
Would you like to define your dev dependencies (require-dev) interactively [yes]? no
Do you confirm generation [yes]? yes
Analysez le contenu du fichier composer.json
qui a été généré.
Pour fonctionner correctement, vous devez ajouter quelques lignes de configuration dans votre composer.json
.
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
Puis lancer la commande
composer dump-autoload
Cela indique à composer que le dossier src
correspond à l’espace de nom (namespace) App
Exercice
Le but de ce TP va être de réaliser une commande à l’aide de symfony/console
Suivez la documentation pour ajouter le composant à votre projet.
Toujours grâce à la documentation, créez votre application à la racine du projet (fichier application.php
décrit dans la doc).
Pour la lancer, faites php application.php
, vous devriez voir un message d’aide apparaître.
Dans la documentation, il est souvent mentionné la commande php bin/console ...
mais dans le cadre de ce TP vous devrez
remplacer ça par php application.php ...
.
Ajoutez votre première commande (fichier HelloWorldCommand.php
dans le dossier src/command
) qui affichera (output) un Hello World!
.
Cette documentation pourra vous aider.
Veillez à bien faire $application->add()
AVANT $application->run()
Ajoutez un argument name
(input) à votre commande afin d’afficher Hello <name>!
si l’argument name
est passé à la commande,
Hello World!
sinon.
Ajoutez ensuite monolog/monolog
à votre projet et utilisez ce package pour écrire des logs dans le
fichier logs/console.log
.
Pour approfondir, regardez les possibilités de style offertes par le composant Console (progress bar, couleurs, sections, tableaux, etc)