156 votes

composer : Comment trouver la version exacte d'un paquetage ?

Supposons que j'écrive une bibliothèque A, qui dépend d'une autre bibliothèque, monolog par exemple.

Je veux installer la dernière version de monolog, donc je mets ceci dans composer.json :

{
    "require": {
        "monolog/monolog": "*.*.*"
    }
}

Ensuite, je cours $ php composer.phar install .

Je m'attendais à trouver la version installée, dans composer.lock, mais ce n'est pas le cas :

{
    "hash": "d7bcc4fe544b4ef7561918a8fc6ce009",
    "packages": [
        {
            "package": "monolog/monolog",
            "version": "dev-master",
            "source-reference": "2eb0c0978d290a1c45346a1955188929cb4e5db7"
        }
    ],
    "packages-dev": null,
    "aliases": [

    ],
    "minimum-stability": "dev",
    "stability-flags": [

    ]
}

J'ai besoin de la version parce que je veux lier ma bibliothèque à un ensemble spécifique de versions, par exemple : Si je trouve que la version est 1.3.5, dans mon composer.json je voudrais mettre quelque chose comme ceci :

    "require": {
        "monolog/monolog": "1.3.*"
    }

Des idées ?

233voto

Ross Deane Points 1789

Je sais que c'est une vieille question, mais...

composer.phar show

Affiche tous les paquets actuellement installés et leur version. (Dans les versions précédentes de Composer, ces informations n'étaient affichées que lors de l'utilisation de l'option désormais obsolète -i option.)

Pour obtenir plus de détails, indiquez également le nom du paquet :

composer.phar show monolog/monolog

Vous y trouverez de nombreux éléments, notamment le hachage MD5 du commit, l'URL de la source, le type de licence, etc.

77voto

Kévin Ferradj Points 359

Vous pouvez utiliser le show du compositeur comme suit :

composer show package/name

21voto

Jimmix Points 3923

Si vous souhaitez simplement obtenir le numéro de version du paquet, par exemple : 1.7.5 o 1.x-dev o maître du développement .

Extrait de la console Linux (composer & sed) :

composer show 'monolog/monolog' | sed -n '/versions/s/^[^0-9]\+\([^,]\+\).*$/\1/p'

ou (composer, grep & cut) :

composer show 'monolog/monolog' | grep 'versions' | grep -o -E '\*\ .+' | cut -d' ' -f2 | cut -d',' -f1;

11voto

Mohsen Points 143

Vous pouvez utiliser show all, surtout si vous n'avez pas de fichier package.json, vous pouvez obtenir les paquets disponibles sur packagist.org :

composer show "monolog/monolog" --all

Vous pouvez également spécifier des versions

composer show "monolog/monolog" 1.* --all

7voto

Eng_Farghly Points 366

Si vous utilisez système de contrôle de version git Vous pourrez ainsi rechercher facilement n'importe quel paquet

composer show |grep packagename

Par exemple

composer show |grep monolog

Si vous n'installez pas git, vous pouvez installer le programme grep à partir de ce lien , l'associer à des variables d'environnement et écrire la même commande que précédemment dans Cmd

Si vous ne savez pas comment lier un programme avec des variables d'environnement, voir ce lien après l'avoir lié, écrivez la même commande sur le fichier ci-dessus

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X