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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Julien BIANCHI
February 18, 2014
Programming
240
2
Share
Composer
Julien BIANCHI
February 18, 2014
More Decks by Julien BIANCHI
See All by Julien BIANCHI
Lightning Talk - Tips & Tricks
jubianchi
0
86
Make is an actual task runner
jubianchi
6
1.3k
you don't know atoum
jubianchi
1
330
En Route Vers Le Multi-Tâche
jubianchi
0
750
Write A Language In Less Than 10 Minutes
jubianchi
1
290
Dive in Docker
jubianchi
4
950
Vagrant & Cie. : du dév. à la prod
jubianchi
1
530
atoum & Netbeans
jubianchi
0
280
vagrant
jubianchi
4
500
Other Decks in Programming
See All in Programming
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
150
LM Linkで(非力な!)ノートPCでローカルLLM
seosoft
0
370
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
550
KagglerがMixSeekを触ってみた
morim
0
370
年間50登壇、単著出版、雑誌寄稿、Podcast出演、YouTube、CM、カンファレンス主催……全部やってみたので面白さ等を比較してみよう / I’ve tried them all, so let’s compare how interesting they are.
nrslib
4
690
Nuxt Server Components
wattanx
0
240
Coding at the Speed of Thought: The New Era of Symfony Docker
dunglas
0
4.5k
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
1
820
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
260
「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記
mkmk884
0
300
飯MCP
yusukebe
0
480
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
3
440
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
660
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Un-Boring Meetings
codingconduct
0
250
Building the Perfect Custom Keyboard
takai
2
720
Skip the Path - Find Your Career Trail
mkilby
1
94
4 Signs Your Business is Dying
shpigford
187
22k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
170
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
280
Believing is Seeing
oripsolob
1
100
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
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…