composer panada conference 2014 by mulia nasution
DESCRIPTION
Presentation about PHP Composer By Mulia NasutionTRANSCRIPT
History
Long time ago…
Other communities
http://packagist.org
Let the numbers speak
Total 41.000+ packages
https://packagist.org/statistics - Oct 23, 2014 22:38 UTC+7
Active
Per-project
Create an autoloader
Easy to install & publish
Simplify deployment
Dependency Resolution with
SAT
System-wide
Hard to install
Hard to publish
Hard to deploy
Composer vs PEAR
depen sat…what?!?
Laravel
Monolog Boris
Whoops
Carbon
Symfony
browser-kit
Symfony
dom-crawler
Symfony
http-kernel
Symfony
http-foundation
Symfony
debug
Symfony
event-dispatcher
Symfony
css-selector
Installation
*nix
curl -sS https://getcomposer.org/installer | php
Windows
https://getcomposer.org/Composer-Setup.exe
http://getcomposer.org/composer.phar
composer init
composer.json
composer require
composer show
Semantic Versioningsemver.org
major.minor.patch
major.minor.patch
When you breaks backward compatibility
major.minor.patch
When you add
backwards compatible features
major.minor.patch
When you make
backwards compatible bug fixes
Pre-release identifier“stability” in composer
1.0.0-alpha@alpha
1.0.0-beta@beta
1.0.0-RC@RC
1.0.0@stable
v1.4.0 = 1.4.0
Exact Version
1.4.*
1.4.1, 1.4.2, 1.4.9
<1.5
Wildcards
>=1.4.0,<2.0
1.4.1, 1.4.2, 1.4.9
<2.0
Ranges
~1.4
>=1.4, < 2.0
Next significant releases
~1.4.3
>=1.4.3, < 1.5
Next significant releases
master
dev-master
dev- prefix
Requiring branch
cobacoba
dev-cobacoba
dev- prefix
Requiring branch
dev-master#0f79d8e
Require specific commit
composer install
read
composer.json
composer.lock
exists?
read
composer.lock
yes
no
composer install
write
composer.lock
read
composer.json
write
composer.lock
composer update
How to use
Composer Autoloader
composer dump-autoload
Hooks
Custom Repository
vcs, git, svn, hg,
composer, zip
Repository type
Use local packagist
Satis
composer create-project composer/satis --stability=dev
Create “satis.json” file
./bin/satis build satis.json output-dir
Conclusie
Question?