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)