« Programmation PHP/Composer » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Ligne 17 : Ligne 17 :
=== Utilisation ===
=== Utilisation ===
Composer lit et modifie la liste des bibliothèques du projet dans composer.json.
Composer lit et modifie la liste des bibliothèques du projet dans composer.json.

Pour mettre à jour toutes les bibliothèques depuis le dossier du projet :
php composer.phar update


Pour installer un paquet, par exemple MediaWiki :
Pour installer un paquet, par exemple MediaWiki :
<source lang=bash>
php composer.phar require mediawiki/semantic-media-wiki "1.9.*,>=1.9.0.1"
php composer.phar require mediawiki/semantic-media-wiki "1.9.*,>=1.9.0.1"
</source>


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.
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 :
Pour ne mettre à jour qu'une seule bibliothèque (pour ne pas retester tout le projet) :
<source lang=bash>
php composer.phar update mediawiki/semantic-media-wiki --with-dependencies
composer install

</source>
Il est aussi possible d'importer une branche particulière d'un dépôt [[git]] ainsi :
php composer.phar require vendor/repo:dev-branch_name


{{attention|clear=left|Si vous avez plusieurs version de PHP installées, il faut préciser laquelle exécute composer ainsi :
{{attention|clear=left|
Si vous avez plusieurs version de PHP 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
</source>
}}

{{attention|clear=left|
Ne jamais lancer de <code>composer update</code> 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 :
<source lang=bash>
php composer.phar update mediawiki/semantic-media-wiki --with-dependencies
</source>
</source>
}}
}}

Version du 30 octobre 2019 à 23:27

Composer

Composer est un logiciel de gestion des bibliothèques PHP open source. Celles-ci sont aussi accessibles sur https://packagist.org/.

Logo

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

Logo

Si vous avez plusieurs version de PHP installées, il faut préciser laquelle exécute composer ainsi :

/usr/bin/php7.2 /usr/local/bin/composer install

Logo

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

Références