- Accueil
- Objectifs de la séance
- Installation de
Composer
dans un environnement Linux - Installation de
Composer
dans un environnement Windows - Mise à jour de
Composer
- Relocalisation du cache de
Composer
- Résoudre le problème de limitation du nombre d'appels de l'API GitHub
- Scripts «
Composer
» compatibles Windows et Linux
Objectifs de la séance ¶
- Installer
Composer
- Modifier votre environnement de travail
- Savoir mettre à jour
Composer
Installation de Composer
dans un environnement Linux
¶
Vous allez apprendre à gérer les dépendances de vos projets en utilisant Composer
. L'intérêt d'utiliser Composer
est double : l'installation, la réinstallation ou la mise à jour d'un composant est simple et vous disposez des sources pour que votre IDE propose l'auto-complétion.
Vous allez installer Composer
.
Travail à réaliser
- Ouvrez un terminal
- S'il n'existe pas, créez un répertoire «
bin
» dans votre répertoire d'accueil :mkdir ~/bin
- Placez-vous dans le répertoire «
» votre répertoire d'accueil :bin
cd ~/bin
- Rendez-vous sur le site de composer et exécutez les commandes permettant de le télécharger.
Vous devriez désormais trouver le fichier «
composer.phar
» dans votre répertoire courant. - Afin d'utiliser la version à jour de
composer
fraîchement téléchargée, vous allez renommer le fichier «composer.phar
» en «composer
». - Si vous ne l'avez pas déjà fait, ajoutez le répertoire «
~/bin
» à la variable «PATH
» en modifiant le fichier «~/.profile
» pour y insérer la ligne suivante :export PATH="$HOME/bin:$PATH"
- Si vous avez modifié le script
shell
«~/.profile
», rechargez-le dans votre environnement en passant la commande :source ~/.profile
InformationLa configuration du shell Bash se fait à l'aide de fichiers de démarrage. Le fichier «
~/.profile
» est exécuté à chaque ouverture de session. Il est donc nécessaire de se (re)connecter pour que les modifications soient prises en compte dans chaque terminal lancé. Pour cette séance, vous pouvez vous contenter de recharger le fichier de configuration avec la commande «source ~/.profile
».Si vous souhaitez profiter immédiatement des bénéfices de la modifications du fichier «
.profile
», vous devez vous déconnecter de la machine et vous reconnecter. - Vérifiez que la commande «
composer
» est bien localisée dans votre répertoire «$HOME/bin
» :which composer
- Testez le bon fonctionnement de la commande «
composer
» en l'exécutant :composer --version
Installation de Composer
dans un environnement Windows
¶
Vous allez apprendre à gérer les dépendances de vos projets en utilisant Composer
. L'intérêt d'utiliser Composer
est double : l'installation, la réinstallation ou la mise à jour d'un composant est simple et vous disposez des sources pour que votre IDE propose l'auto-complétion.
Vous allez installer Composer
dans votre environnement Windows.
Remarque importante
Composer
nécessite un interpréteur PHP
pour fonctionner. Si vous n'avez pas installé PHP
sur Windows, référez-vous au tutoriel « Installation d'un environnement de développement PHP
sur Windows »
Travail à réaliser
- Rendez-vous sur la page de téléchargement de
Composer
pour Windows - Téléchargez «
Composer-Setup.exe
» et lancez-le - Choisissez le mode d'installation multi-utilisateurs (vous devez être administrateur de l'ordinateur)
- Choisissez ensuite de conserver l'option de désinstallation de
Composer
- Vérifiez le chemin de l'exécutable de
PHP
qui a été détecté - Précisez le serveur mandataire à utiliser pour que
Composer
accède à internet - Vérifiez vos choix et validez
- Testez le bon fonctionnement de
Composer
en l'exécutant dans une consoleGit Bash
:composer --version
Mise à jour de Composer
¶
Une fois installé, Composer
peut « s'auto-mettre à jour » :
composer self-update
Relocalisation du cache de Composer
¶
Afin d'accélérer les installations futures et de limiter l'impact sur votre quota d'espace disque, nous allons relocaliser le cache de Composer
dans le répertoire temporaire.
Information
Cette configuration est une nouvelle fois particulière à l'infrastructure de l'IUT. Ne faites pas de modification du répertoire de cache de Composer
sur votre ordinateur personnel.
Travail à réaliser
- Videz le cache actuel avec la commande :
composer clearcache
- Modifiez l'emplacement du cache avec la commande :
composer config --global cache-dir /tmp/$USER/composer
- Vérifiez la bonne exécution de la commande précédente en affichant le contenu du fichier «
$HOME/.config/composer/config.json
» :cat $HOME/.config/composer/config.json { "config": { "cache-dir": "/tmp/votre_login/composer"} }
Résoudre le problème de limitation du nombre d'appels de l'API GitHub ¶
Composer
récupère une grande partie des paquets nécessaires à vos applications sur GitHub. Au-delà de 60 requêtes par heure, GitHub applique une limitation et les paquets ne peuvent plus être récupérés pour être installés. Cette limite est possiblement vite atteinte puisque l'ensemble des ordinateurs du département Informatique sont vus à travers la même adresse IP publique.
Si vous obtenez un message d'erreur lors d'une installation de paquets avec Composer
, vous pouvez augmenter la limite à 5000 requêtes par heure, à condition de vous identifier lorsque vous utilisez Composer
. Pour cela, vous devez :
- disposer d'un compte GitHub
- vous rendre sur la page de gestion des jetons personnels (token)
- générer un nouveau jeton d'authentification en cliquant sur « Generate new token »
- saisir le jeton dans l'un des deux cas suivants :
- si vous êtes confronté au message d'erreur de limitation
- en passant la commande
composer --global config github-oauth.github.com YOUR_TOKEN
Votre jeton sera mémorisé dans le fichier « auth.json
» présent dans le répertoire de configuration global de Composer
. Ce répertoire est normalement :
- «
$HOME/.config/composer/
» sur Linux - «
» sur Windows%USERPROFILE%\AppData\Roaming\Composer\
composer --global config home
Scripts « Composer
» compatibles Windows et Linux
¶
Composer
permet de définir des scripts pour faciliter le lancement de certaines commandes comme le démarrage du serveur Web ou l'exécution des tests. Cependant, certaines formulations et habitudes ne sont pas fonctionnelles à la fois sur Linux et Windows. Afin de vous permettre de travailler aussi bien à l'IUT sur Linux que chez vous sur Windows, nous allons vous donner quelques éléments clés pour maximiser l'interopérabilité entre systèmes d'exploitation ou minimiser la duplication de fichier ou de code lorsque des formulations spécifiques sont nécessaires.
Lancement du serveur Web ¶
Le serveur Web de développement est classiquement lancé avec la commande php -S …
. La configuration de l'environnement de développement peut alors se faire par variables d'environnement, par exemple avec le script « run-server
» qui déclencherait la commande shell Linux suivante :
APP_DIR="$PWD" php -d display_errors -d auto_prepend_file="$PWD/vendor/autoload.php" -S localhost:8080 -t public/
Son équivalent avec l'interpréteur cmd
de Windows est alors :
set APP_DIR=%cd% php -d display_errors -d auto_prepend_file=%cd%\vendor\autoload.php -S localhost:8080 -t public/
Il est impossible de trouver une formulation commune et il est donc indispensable de proposer deux scripts Composer
différents. Il vous est donc proposé de créer un répertoire « bin
» à la racine de votre projet, dans lequel vous placerez les fichiers de commandes qui seront lancés par les scripts Composer
:
- Pour Linux :
- Fichier «
bin/run-server.sh
» contenantAPP_DIR="$PWD" php -d display_errors -d auto_prepend_file="$PWD/vendor/autoload.php" -S localhost:8000 -t public/
- Script
Composer
«run-server
» donc la formulation complète dans «composer.json
» est"run-server" : [ "Composer\\Config::disableProcessTimeout", "bin/run-server.sh" ],
InformationN'oubliez pas de changer les droits des scripts shell Linux pour les rendre exécutables.
- Fichier «
- Pour Windows :
- Fichier «
bin\run-server.bat
» contenantset APP_DIR=%cd% php -d display_errors -d auto_prepend_file="%cd%\vendor\autoload.php" -S localhost:8000 -t public/
- Script
Composer
«run-server:win
» donc la formulation complète dans «composer.json
» est"run-server:win" : [ "Composer\\Config::disableProcessTimeout", "bin/run-server.bat" ],
- Fichier «
Exécution des tests d'acceptation Codeception
¶
Codeception
dispose de tests d'acceptation qui sont exécutés pour interroger un serveur Web fonctionnel. Il est possible de configurer l'extension « RunProcess
» pour qu'elle lance automatiquement un serveur Web dédié avant d'exécuter les tests, cette configuration est alors réalisée dans le fichier de configuration de la suite de tests associée.
Sur le même principe que précédemment, un script sera disponible par système d'exploitation.
- Pour Linux, fichier «
bin/run-test-server.sh
» contenantMYPDO_ENV=test APP_DIR="$PWD" php -d display_errors -d auto_prepend_file="$PWD/vendor/autoload.php" -S localhost:8000 -t public/
- Pour Windows, fichier «
bin\run-test-server.bat
» contenantset MYPDO_ENV=test set APP_DIR=%cd% php -d display_errors -d auto_prepend_file="%cd%\vendor\autoload.php" -S localhost:8000 -t public/
Le fichier de configuration de la suite de tests est alors unique en exploitant l'astuce qui fait que le script Windows échouera sur Linux et inversement, et ce sans empêcher le lancement du serveur ou le bon déroulement des tests :
extensions: enabled: - Codeception\Extension\RunProcess: # Run server on Windows platform (won't start on Linux) 0: bin\run-test-server.bat # Run server on Linux platform (won't start on Windows) 1: bin/run-test-server.sh sleep: 1 # wait for php local web server to start
Si vous avez uniquement besoin de variables d'environnement pour vos scripts Composer
¶
Les principe détaillé dans les parties précédentes est nécessaire car les scripts font usage du répertoire courant (« $PWD
» sur Linux, « %cd%
» sur Windows) dans la ligne de commande qui lance le serveur Web. Si vous avez uniquement besoin de définir des variables d'environnement simples (comme « MYPDO_ENV=test
») pour des commandes qui fonctionnement aussi bien sur Linux que sur Windows (la commande php
, par exemple), vous pouvez utiliser la commande « @putenv
» de Composer
.
Description des scripts Composer
¶
La commande composer run --list
affiche l'ensemble des scripts Composer disponibles
. Vous pouvez rendre cette liste plus accessible en donnant une description de chaque script.