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
210
Composer
Julien BIANCHI
February 18, 2014
Tweet
Share
More Decks by Julien BIANCHI
See All by Julien BIANCHI
Lightning Talk - Tips & Tricks
jubianchi
0
53
Make is an actual task runner
jubianchi
6
1.3k
you don't know atoum
jubianchi
1
290
En Route Vers Le Multi-Tâche
jubianchi
0
690
Write A Language In Less Than 10 Minutes
jubianchi
1
250
Dive in Docker
jubianchi
4
910
Vagrant & Cie. : du dév. à la prod
jubianchi
1
490
atoum & Netbeans
jubianchi
0
240
vagrant
jubianchi
4
460
Other Decks in Programming
See All in Programming
カウシェで Four Keys の改善を試みた理由
ike002jp
1
140
Laravel × Clean Architecture
bumptakayuki
PRO
0
150
ぽちぽち選択するだけでOSSを読めるVSCode拡張機能
ymbigo
14
6.3k
エンジニアが挑む、限界までの越境
nealle
1
330
「理解」を重視したAI活用開発
fast_doctor
0
300
設計の本質:コード、システム、そして組織へ / The Essence of Design: To Code, Systems, and Organizations
nrslib
10
3.8k
Storybookの情報をMCPサーバー化する
shota_tech
3
1.1k
知識0からカンファレンスやってみたらこうなった!
syossan27
5
260
一緒に働きたくなるプログラマの思想 #QiitaConference
mu_zaru
81
21k
実践Webフロントパフォーマンスチューニング
cp20
45
10k
事業KPIを基に価値の解像度を上げる
nealle
0
100
ウォンテッドリーの「ココロオドル」モバイル開発 / Wantedly's "kokoro odoru" mobile development
kubode
2
570
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
5
600
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
14
1.5k
A designer walks into a library…
pauljervisheath
205
24k
Documentation Writing (for coders)
carmenintech
71
4.8k
BBQ
matthewcrist
88
9.6k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
We Have a Design System, Now What?
morganepeng
52
7.6k
What's in a price? How to price your products and services
michaelherold
245
12k
The Cult of Friendly URLs
andyhume
78
6.3k
Into the Great Unknown - MozCon
thekraken
38
1.8k
A better future with KSS
kneath
239
17k
Scaling GitHub
holman
459
140k
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…