Slide 1

Slide 1 text

COMPOSER dependency manager for PHP conseils d’utilisation

Slide 2

Slide 2 text

Comment bien utiliser Composer en ligne de commande sur vos projets

Slide 3

Slide 3 text

Démarrer un projet depuis un bootstrap #1

Slide 4

Slide 4 text

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] ! ! ! !

Slide 5

Slide 5 text

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 ?!

Slide 6

Slide 6 text

BOOTSTRAP $ composer.phar create-project symfony-standard my-project [--dev] $ cd my-project ! ! ! ! ! C’EST MIEUX :)

Slide 7

Slide 7 text

#1 Ne vous fatiguez pas, composer est là pour vous aider

Slide 8

Slide 8 text

#2 Démarrer un projet from scratch

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

FROM SCRATCH $ mkdir my-project $ cd !$ $ composer.phar init ! # Interface interactive de composer ! $ composer.phar install --dev ! ! ! ! ! !

Slide 12

Slide 12 text

#2 Profitez de l’interface interactive pour éviter les erreurs

Slide 13

Slide 13 text

#3 Installer un projet et ses déps.

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

#3 Laissez Composer faire son travail : gérer vos déps.

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

MISE À JOUR $ git pull origin develop $ composer.phar install [--dev] $ composer.phar require [--dev] ! # Interface interactive de composer ! $ composer.phar update / [--dev]

Slide 22

Slide 22 text

#4 Éviter les update globaux (à moins de savoir exactement ce que vous faites) Ne mettez à jour que ce qui doit l’être

Slide 23

Slide 23 text

#4bis Ne jamais, jamais, JAMAIS lancer un update dans une procédure auto.

Slide 24

Slide 24 text

#4 Réinitialiser son workspace

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

RÉINITIALISATION $ rm composer.lock $ rm -rf vendor $ composer.phar install [--dev] PAS TOUCHE AU LOCK

Slide 27

Slide 27 text

RÉINITIALISATION $ rm -rf ~/.composer/cache $ rm -rf vendor $ composer.phar install [--dev]

Slide 28

Slide 28 text

#5 Le fichier composer.lock est la propriété de composer

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

#7 Optimiser son projet pour le déploiement

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

#7 Optimisez votre projet pour le déploiement (autoload + dist)

Slide 39

Slide 39 text

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