Skip to content

Instantly share code, notes, and snippets.

@t-geindre
Last active December 12, 2016 21:34
Show Gist options
  • Save t-geindre/fb23bc264c70051aec0695367675ccf5 to your computer and use it in GitHub Desktop.
Save t-geindre/fb23bc264c70051aec0695367675ccf5 to your computer and use it in GitHub Desktop.

Composer tips and tricks

Installation

Il existe deux façons d'installer composer, soit localement dans votre projet, soit globalement sur votre système. La seconde méthode est sans aucun doute la meilleur et peut être réalisée simplement avec la commande suivante :

$ wget https://getcomposer.org/installer && php installer && rm installer && sudo mv composer.phar /usr/local/bin/composer

Mise à jour

Pensez à mettre à jour votre installtion de composer régulièrement. En générale, composer vous conseil de faire la mise à jour si vous ne l'avez pas faites depuis plus d'un mois :

$ sudo composer self-update

Par défaut, la dernière version stable est installée. Deux options permettent d'obtenir des versions plus récentes mais dont la stabilité n'est pas garantie :

  • --preview - pre-release,
  • --snapshot - snapshot du dernier commit.

Il est également possible d'annuler la dernière mise à jour et de revenir sur la version précédemment installée avec la commande suivante :

$ sudo composer self-update --rollback

Initialisation

$ composer init

Ajouter des dépendances, the right way!

Sur de nombreux projets, vous pourrez lire :

Ajoutez simplement ceci à votre composer.json :

"require": {
	"myproject": "someversion"
}

}```

Pourquoi c'est une mauvaise approche :

  • risque d'introduire des erreurs dans votre composer.json,
  • vous n'êtes pas certain de prendre la dernière version stable (doc pas à jour).

Utilisez plutôt :

$ composer require symfony/symfony

Résultat dans composer.json :

{
    "require": {
        "symfony/symfony": "^3.2"
    }
}

Composer a sélectionné automatiquement la dernière verion stable et autorise les mises à jour sans BC break. Il n'y aurait pas eu de modification du composer.json en cas d'erreur (rollback).

Il est aussi possible de spécifier une version en particulier à installer :

$ composer require symfony/symfony 2.1

Et dans ce cas, étant donné que symfony 3.2 est déjà installé, il y aurait un conflit et le composer.json ne serait pas modifié.

Enfin, pour installer une dépendance en dev uniquement, il est possible d'utiliser l'option --dev :

$ composer require phpunit/phpunit --dev

composer.json VS composer.lock

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment