« Programmation PHP/Composer » : différence entre les versions
Ligne 31 : | Ligne 31 : | ||
{{attention|clear=left| |
{{attention|clear=left| |
||
Si |
Si plusieurs versions de PHP sont installées, il faut préciser laquelle exécute ''composer'' ainsi : |
||
<source lang=bash> |
<source lang=bash> |
||
/usr/bin/php7.2 /usr/local/bin/composer install |
/usr/bin/php7.2 /usr/local/bin/composer install |
Version du 30 octobre 2019 à 23:28
Composer
Composer est un logiciel de gestion des bibliothèques PHP open source. Celles-ci sont aussi accessibles sur https://packagist.org/.
Il existe une syntaxe pour le nommage des bibliothèques sous peine de warnings lors des manipulations avec composer. Elles doivent être de la forme vendor name/package name, uniquement avec des caractères alphanumériques plus "-", "." ou "_".
Installation
Pour l'installer il y a trois solutions :
- Avec les commandes PHP décrites sur https://getcomposer.org/download/.
- En téléchargeant le package par navigateur à la même adresse.
- En le téléchargeant avec la commande cURL[1], comme le montre la vidéo suivante :
A la fin il faut juste disposer du fichier composer.phar.
Utilisation
Composer lit et modifie la liste des bibliothèques du projet dans composer.json.
Pour installer un paquet, par exemple MediaWiki :
php composer.phar require mediawiki/semantic-media-wiki "1.9.*,>=1.9.0.1"
Si l'installation réussit, il ajoute le paquet dans composer.json. Il informe ensuite des problèmes de dépendances, par exemple si la version de PHP locale est inférieure à celle recommandée pour le paquet.
Généralement quand on clone un projet git existant contenant un "composer.json", il suffit ensuite pour le faire fonctionner, d'installer ses dépendances ainsi :
composer install
Si plusieurs versions de PHP sont installées, il faut préciser laquelle exécute composer ainsi :
/usr/bin/php7.2 /usr/local/bin/composer install
Ne jamais lancer de composer update
sur un projet existant, sous peine de devoir tout retester. En effet, mieux vaut ne mettre à jour qu'une seule bibliothèque en précisant son nom :
php composer.phar update mediawiki/semantic-media-wiki --with-dependencies
composer.json
La syntaxe JSON de ce fichier contient quelques extensions[2] :
Symbole | Rôle (placé avant un numéro de version) | Exemple |
---|---|---|
>= | permet d'en étendre le numéro. De même on trouve les symboles >, <, <=. | "php": ">=5.5.9" inclut PHP 7.
|
!= | exclut une version. | |
- | définit une plage de versions. | |
¦¦ | ajoute des versions possibles. | "symfony/symfony": "2.8 ¦¦ 3.0" regroupe uniquement ces deux versions.
|
* | étend à toutes les sous-versions. | "symfony/symfony": "3.1.*" comprend la 3.1.1.
|
~ | étend aux versions suivantes du même niveau. | "doctrine/orm": "~2.5" concerne aussi la 2.6 mais pas la 2.4 ni la 3.0.
|
^ | fait la même chose que tilde sous réserve qu'il y ait une compatibilité ascendante. |
Stability Flag
Après la version à trois nombres, on peut suffixer un arobase puis un Stability Flag'[3]. Exemples :
@dev
@stable