Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Composer

 Composer

F46b6942be65359575174569d8979223?s=128

Julien BIANCHI

February 18, 2014
Tweet

Transcript

  1. COMPOSER dependency manager for PHP conseils d’utilisation

  2. Comment bien utiliser Composer en ligne de commande sur vos

    projets
  3. Démarrer un projet depuis un bootstrap #1

  4. BOOTSTRAP $ wget –O symfony.zip https://github.com/symfony/symfony- standard/archive/v2.1.6.zip $ unzip symfony.zip

    $ rm symfony.zip $ mv symfony-standard-master my-project $ cd my-project $ composer.phar install [--dev] ! ! ! !
  5. BOOTSTRAP $ wget –O symfony.zip https://github.com/symfony/symfony- standard/archive/v2.1.6.zip $ unzip symfony.zip

    $ rm symfony.zip $ mv symfony-standard-master my-project $ cd my-project $ composer.phar install [--dev] ! ! ! ! RIEN QUE ÇA ?!
  6. BOOTSTRAP $ composer.phar create-project symfony-standard my-project [--dev] $ cd my-project

    ! ! ! ! ! C’EST MIEUX :)
  7. #1 Ne vous fatiguez pas, composer est là pour vous

    aider
  8. #2 Démarrer un projet from scratch

  9. FROM SCRATCH $ mkdir my-project $ cd !$ $ vim

    composer.json ! # Édition manuelle du fichier ! $ composer.phar validate $ composer.phar install [--dev]
  10. FROM SCRATCH $ mkdir my-project $ cd !$ $ vim

    composer.json ! # Édition manuelle du fichier ! $ composer.phar validate $ composer.phar install [--dev] MANUEL = ERREUR
  11. FROM SCRATCH $ mkdir my-project $ cd !$ $ composer.phar

    init ! # Interface interactive de composer ! $ composer.phar install --dev ! ! ! ! ! !
  12. #2 Profitez de l’interface interactive pour éviter les erreurs

  13. #3 Installer un projet et ses déps.

  14. INSTALLATION “T’as juste à cloner le dépôt, tout est dans

    le dossier vendor !
  15. INSTALLATION “T’as juste à cloner le dépôt, tout est dans

    le dossier vendor ! #FAIL
  16. INSTALLATION $ git clone git://github.com/symfony/symfony-standard.git my-project $ cd my-project $

    composer.phar install [–dev] [--prefer(dist|source)] $ cat .gitignore vendor DÉPÔT + LÉGER
  17. #3 Laissez Composer faire son travail : gérer vos déps.

  18. #3 Mettre à jour un projet et ses déps.

  19. MISE À JOUR $ git pull origin develop $ composer.phar

    update [--dev] $ vim composer.json ! # Ajout/Suppression/Modification manuelle de dépendances ! $ composer.phar update [--dev]
  20. MISE À JOUR $ git pull origin develop $ composer.phar

    update [--dev] $ vim composer.json ! # Ajout/Suppression/Modification manuelle de dépendances ! $ composer.phar update [--dev] UPDATE = ATTENTION
  21. MISE À JOUR $ git pull origin develop $ composer.phar

    install [--dev] $ composer.phar require [--dev] ! # Interface interactive de composer ! $ composer.phar update <vendor>/<package> [--dev]
  22. #4 Éviter les update globaux (à moins de savoir exactement

    ce que vous faites) Ne mettez à jour que ce qui doit l’être
  23. #4bis Ne jamais, jamais, JAMAIS lancer un update dans une

    procédure auto.
  24. #4 Réinitialiser son workspace

  25. RÉINITIALISATION $ rm composer.lock $ rm -rf vendor $ composer.phar

    install [--dev]
  26. RÉINITIALISATION $ rm composer.lock $ rm -rf vendor $ composer.phar

    install [--dev] PAS TOUCHE AU LOCK
  27. RÉINITIALISATION $ rm -rf ~/.composer/cache $ rm -rf vendor $

    composer.phar install [--dev]
  28. #5 Le fichier composer.lock est la propriété de composer

  29. #6 Régénérer l’autoload

  30. AUTOLOAD $ composer.phar install [--dev] # OU $ composer.phar update

    [--dev]
  31. AUTOLOAD $ composer.phar install [--dev] # OU $ composer.phar update

    [--dev]
  32. AUTOLOAD $ composer.phar dump-autoload [--optimize]

  33. #6 Minimisez votre impact sur les dépendances (composer.lock)

  34. #7 Optimiser son projet pour le déploiement

  35. DÉPLOIEMENT $ git clone git@server:my-project.git $ cd my-project $ composer.phar

    install $ rm -rf `find . -type d -name .git` $ rsync -az --progress ./* me@prod:/path/to/my-project
  36. DÉPLOIEMENT $ git clone git@server:my-project.git $ cd my-project $ composer.phar

    install $ rm -rf `find . -type d -name .git` $ rsync -az --progress ./* me@prod:/path/to/my-project
  37. DÉPLOIEMENT $ git clone git@server:my-project.git $ cd my-project $ composer.phar

    install --prefer-dist --optimize-autoloader $ rm -rf `find . -type d -name .git` $ rsync -az --progress ./* me@prod:/path/to/my-project
  38. #7 Optimisez votre projet pour le déploiement (autoload + dist)

  39. @JUBIANCHI http://twitter.com/jubianchi http://github.com/jubianchi FIN…