Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Composer
Search
Julien BIANCHI
February 18, 2014
Programming
2
220
Composer
Julien BIANCHI
February 18, 2014
Tweet
Share
More Decks by Julien BIANCHI
See All by Julien BIANCHI
Lightning Talk - Tips & Tricks
jubianchi
0
62
Make is an actual task runner
jubianchi
6
1.3k
you don't know atoum
jubianchi
1
300
En Route Vers Le Multi-Tâche
jubianchi
0
720
Write A Language In Less Than 10 Minutes
jubianchi
1
270
Dive in Docker
jubianchi
4
920
Vagrant & Cie. : du dév. à la prod
jubianchi
1
510
atoum & Netbeans
jubianchi
0
260
vagrant
jubianchi
4
480
Other Decks in Programming
See All in Programming
育てるアーキテクチャ:戦い抜くPythonマイクロサービスの設計と進化戦略
fujidomoe
1
150
CSC509 Lecture 03
javiergs
PRO
0
320
詳しくない分野でのVibe Codingで困ったことと学び/vibe-coding-in-unfamiliar-area
shibayu36
2
1.6k
Repenser les filtres API Platform: une nouvelle syntaxe
vinceamstoutz
2
160
GraphQL×Railsアプリのデータベース負荷分散 - 月間3,000万人利用サービスを無停止で
koxya
1
1k
Breaking Up with Big ViewModels — Without Breaking Your Architecture (droidcon Berlin 2025)
steliosf
PRO
1
280
iOSアプリの信頼性を向上させる取り組み/ios-app-improve-reliability
shino8rayu9
0
130
CSC509 Lecture 01
javiergs
PRO
1
430
フロントエンド開発に役立つクライアントプログラム共通のノウハウ / Universal client-side programming best practices for frontend development
nrslib
7
3.8k
defer f()とdefer fの挙動を 誤解していた話
kogamochiduki
2
160
NetworkXとGNNで学ぶグラフデータ分析入門〜複雑な関係性を解き明かすPythonの力〜
mhrtech
3
920
(Extension DC 2025) Actor境界を越える技術
teamhimeh
1
170
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Agile that works and the tools we love
rasmusluckow
330
21k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
The Invisible Side of Design
smashingmag
301
51k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
51k
Building Adaptive Systems
keathley
43
2.8k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
20k
Typedesign – Prime Four
hannesfritz
42
2.8k
The World Runs on Bad Software
bkeepers
PRO
71
11k
Transcript
COMPOSER dependency manager for PHP conseils d’utilisation
Comment bien utiliser Composer en ligne de commande sur vos
projets
Démarrer un projet depuis un bootstrap #1
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] ! ! ! !
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 ?!
BOOTSTRAP $ composer.phar create-project symfony-standard my-project [--dev] $ cd my-project
! ! ! ! ! C’EST MIEUX :)
#1 Ne vous fatiguez pas, composer est là pour vous
aider
#2 Démarrer un projet from scratch
FROM SCRATCH $ mkdir my-project $ cd !$ $ vim
composer.json ! # Édition manuelle du fichier ! $ composer.phar validate $ composer.phar install [--dev]
FROM SCRATCH $ mkdir my-project $ cd !$ $ vim
composer.json ! # Édition manuelle du fichier ! $ composer.phar validate $ composer.phar install [--dev] MANUEL = ERREUR
FROM SCRATCH $ mkdir my-project $ cd !$ $ composer.phar
init ! # Interface interactive de composer ! $ composer.phar install --dev ! ! ! ! ! !
#2 Profitez de l’interface interactive pour éviter les erreurs
#3 Installer un projet et ses déps.
INSTALLATION “T’as juste à cloner le dépôt, tout est dans
le dossier vendor !
INSTALLATION “T’as juste à cloner le dépôt, tout est dans
le dossier vendor ! #FAIL
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
#3 Laissez Composer faire son travail : gérer vos déps.
#3 Mettre à jour un projet et ses déps.
MISE À JOUR $ git pull origin develop $ composer.phar
update [--dev] $ vim composer.json ! # Ajout/Suppression/Modification manuelle de dépendances ! $ composer.phar update [--dev]
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
MISE À JOUR $ git pull origin develop $ composer.phar
install [--dev] $ composer.phar require [--dev] ! # Interface interactive de composer ! $ composer.phar update <vendor>/<package> [--dev]
#4 Éviter les update globaux (à moins de savoir exactement
ce que vous faites) Ne mettez à jour que ce qui doit l’être
#4bis Ne jamais, jamais, JAMAIS lancer un update dans une
procédure auto.
#4 Réinitialiser son workspace
RÉINITIALISATION $ rm composer.lock $ rm -rf vendor $ composer.phar
install [--dev]
RÉINITIALISATION $ rm composer.lock $ rm -rf vendor $ composer.phar
install [--dev] PAS TOUCHE AU LOCK
RÉINITIALISATION $ rm -rf ~/.composer/cache $ rm -rf vendor $
composer.phar install [--dev]
#5 Le fichier composer.lock est la propriété de composer
#6 Régénérer l’autoload
AUTOLOAD $ composer.phar install [--dev] # OU $ composer.phar update
[--dev]
AUTOLOAD $ composer.phar install [--dev] # OU $ composer.phar update
[--dev]
AUTOLOAD $ composer.phar dump-autoload [--optimize]
#6 Minimisez votre impact sur les dépendances (composer.lock)
#7 Optimiser son projet pour le déploiement
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
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
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
#7 Optimisez votre projet pour le déploiement (autoload + dist)
@JUBIANCHI http://twitter.com/jubianchi http://github.com/jubianchi FIN…