Belgian living in Zürich, Switzerland
Building the internet for 10+ years
http://seld.be
Symfony2, Composer and other OSS contributions
http://github.com/Seldaek
Working at Nelmio
http://nelm.io
Symfony2 & performance consulting
{ "repositories": [ { "type": "vcs", "url": "https://github.com/Seldaek/symfony" } ], "require": { "symfony/symfony": "dev-master" } }
Additional repositories take priority over the default ones
{ "repositories": [ { "type": "vcs", "url": "https://github.com/Seldaek/symfony" } ], "require": { "symfony/symfony": "dev-my-patch" } }
Your branches are available as well
Use composer show -v symfony/symfony
to see available versions
{ "repositories": [ { "type": "vcs", "url": "https://github.com/Seldaek/symfony" } ], "require": { "symfony/symfony": "dev-my-patch as 2.1.0" } }
composer.json
{ "repositories": [ { "type": "vcs", "url": "https://github.com/nelmio/NelmioSecretBundle" }, { "type": "vcs", "url": "https://github.com/nelmio/lib" } ], "require": { "nelmio/secret-bundle": "1.*", "nelmio/lib": "1.5.3" } }
satis.json
{ "repositories": [ { "type": "vcs", "url": "https://github.com/nelmio/NelmioSecretBundle" }, { "type": "vcs", "url": "https://github.com/nelmio/lib" } ] }
composer create-project composer/satis myrepo cd myrepo bin/satis build satis.json www/
composer.json
{ "repositories": [ { "type": "composer", "url": "http://satis.example.org/" } ], "require": { "nelmio/secret-bundle": "1.*", "nelmio/lib": "1.5.3" } }
Unix: /home/example/.composer/config.json
Windows: C:\Users\example\AppData\Roaming\Composer\config.json
{ "repositories": [ { "type": "composer", "url": "http://satis.example.org/" } ] }
Use composer config -g -e
to open the file
composer.json
{ "require": { "nelmio/secret-bundle": "1.*", "nelmio/lib": "1.5.3" } }
$ composer install --no-dev
Create install requests for the requirements
(on update:) Force update installed dev packages to latest commit
Load lock file as a repository
Create install requests for all its packages
$ composer show --platform
$ composer show --installed
{ "minimum-stability": "alpha" }
{ "require": { "acme/foo": "1.0.*@dev" } }
{ "prefer-stable": true }
$ composer update -v (--verbose) Loading composer repositories with package information Updating dependencies - Updating symfony/symfony dev-master (487b8c => 885d47) Checking out 885d4733664b040765f2faab68f3aacef58d1216 Pulling in changes: 885d473 - Fabien Potencier: merged branch Tobion/empty-requ.... 13937de - Fabien Potencier: replaced self.version/2.1.* by ... a9a0f42 - Fabien Potencier: merged 2.1 3c32fd9 - Fabien Potencier: replaced self.version by 2.1.*... c5edce7 - Fabien Potencier: merged branch eventhor... 4d6dd46 - Fabien Potencier: merged branch eventhor...
Only want to update the lock file?
$ composer install Installing dependencies from lock file Your lock file is out of sync with your composer.json, run "composer.phar update" to update dependencies $ composer update lock
Optimize the autoloader for production, -o
also works on install/update.
$ composer dump-autoload --optimize
Scripts get in your way during deployment?
$ composer install --no-dev --no-scripts $ app/console assetic:dump --env=prod --no-debug web/ $ [...]
Run scripts manually
$ composer run-script post-update-cmd
$ composer install --prefer-source
$ composer self-update
$ composer diagnose
$ composer update -v
$ rm -rf vendor/ $ composer update -v