composer panada conference 2014 by mulia nasution

72
Composer PHP Dependency Manager Mulia Arifandi Nasution / [email protected] / @mul14 Conference 2014

Upload: k4ndar

Post on 05-Jul-2015

915 views

Category:

Software


0 download

DESCRIPTION

Presentation about PHP Composer By Mulia Nasution

TRANSCRIPT

Page 1: Composer Panada Conference 2014 by Mulia Nasution

ComposerPHP Dependency Manager

Mulia Arifandi Nasution / [email protected] / @mul14

Conference 2014

Page 2: Composer Panada Conference 2014 by Mulia Nasution

History

Page 3: Composer Panada Conference 2014 by Mulia Nasution

Long time ago…

Page 4: Composer Panada Conference 2014 by Mulia Nasution
Page 5: Composer Panada Conference 2014 by Mulia Nasution
Page 6: Composer Panada Conference 2014 by Mulia Nasution

Other communities

Page 7: Composer Panada Conference 2014 by Mulia Nasution
Page 8: Composer Panada Conference 2014 by Mulia Nasution

http://packagist.org

Page 9: Composer Panada Conference 2014 by Mulia Nasution

Let the numbers speak

Total 41.000+ packages

https://packagist.org/statistics - Oct 23, 2014 22:38 UTC+7

Page 10: Composer Panada Conference 2014 by Mulia Nasution
Page 11: Composer Panada Conference 2014 by Mulia Nasution

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

Page 12: Composer Panada Conference 2014 by Mulia Nasution

depen sat…what?!?

Page 13: Composer Panada Conference 2014 by Mulia Nasution

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

Page 14: Composer Panada Conference 2014 by Mulia Nasution

Installation

Page 15: Composer Panada Conference 2014 by Mulia Nasution

*nix

curl -sS https://getcomposer.org/installer | php

Windows

https://getcomposer.org/Composer-Setup.exe

http://getcomposer.org/composer.phar

Page 16: Composer Panada Conference 2014 by Mulia Nasution
Page 17: Composer Panada Conference 2014 by Mulia Nasution

composer init

Page 18: Composer Panada Conference 2014 by Mulia Nasution

composer.json

Page 19: Composer Panada Conference 2014 by Mulia Nasution

composer require

Page 20: Composer Panada Conference 2014 by Mulia Nasution

composer show

Page 21: Composer Panada Conference 2014 by Mulia Nasution
Page 22: Composer Panada Conference 2014 by Mulia Nasution
Page 23: Composer Panada Conference 2014 by Mulia Nasution

Semantic Versioningsemver.org

Page 24: Composer Panada Conference 2014 by Mulia Nasution

major.minor.patch

Page 25: Composer Panada Conference 2014 by Mulia Nasution

major.minor.patch

When you breaks backward compatibility

Page 26: Composer Panada Conference 2014 by Mulia Nasution

major.minor.patch

When you add

backwards compatible features

Page 27: Composer Panada Conference 2014 by Mulia Nasution

major.minor.patch

When you make

backwards compatible bug fixes

Page 28: Composer Panada Conference 2014 by Mulia Nasution

Pre-release identifier“stability” in composer

Page 29: Composer Panada Conference 2014 by Mulia Nasution

1.0.0-alpha@alpha

Page 30: Composer Panada Conference 2014 by Mulia Nasution

1.0.0-beta@beta

Page 31: Composer Panada Conference 2014 by Mulia Nasution

1.0.0-RC@RC

Page 32: Composer Panada Conference 2014 by Mulia Nasution

1.0.0@stable

Page 33: Composer Panada Conference 2014 by Mulia Nasution

v1.4.0 = 1.4.0

Exact Version

Page 34: Composer Panada Conference 2014 by Mulia Nasution

1.4.*

1.4.1, 1.4.2, 1.4.9

<1.5

Wildcards

Page 35: Composer Panada Conference 2014 by Mulia Nasution

>=1.4.0,<2.0

1.4.1, 1.4.2, 1.4.9

<2.0

Ranges

Page 36: Composer Panada Conference 2014 by Mulia Nasution

~1.4

>=1.4, < 2.0

Next significant releases

Page 37: Composer Panada Conference 2014 by Mulia Nasution

~1.4.3

>=1.4.3, < 1.5

Next significant releases

Page 38: Composer Panada Conference 2014 by Mulia Nasution

master

dev-master

dev- prefix

Requiring branch

Page 39: Composer Panada Conference 2014 by Mulia Nasution

cobacoba

dev-cobacoba

dev- prefix

Requiring branch

Page 40: Composer Panada Conference 2014 by Mulia Nasution

dev-master#0f79d8e

Require specific commit

Page 41: Composer Panada Conference 2014 by Mulia Nasution

composer install

Page 42: Composer Panada Conference 2014 by Mulia Nasution
Page 43: Composer Panada Conference 2014 by Mulia Nasution

read

composer.json

composer.lock

exists?

read

composer.lock

yes

no

composer install

write

composer.lock

Page 44: Composer Panada Conference 2014 by Mulia Nasution

read

composer.json

write

composer.lock

composer update

Page 45: Composer Panada Conference 2014 by Mulia Nasution

How to use

Page 46: Composer Panada Conference 2014 by Mulia Nasution
Page 47: Composer Panada Conference 2014 by Mulia Nasution

Composer Autoloader

Page 48: Composer Panada Conference 2014 by Mulia Nasution
Page 49: Composer Panada Conference 2014 by Mulia Nasution
Page 50: Composer Panada Conference 2014 by Mulia Nasution

composer dump-autoload

Page 51: Composer Panada Conference 2014 by Mulia Nasution
Page 52: Composer Panada Conference 2014 by Mulia Nasution
Page 53: Composer Panada Conference 2014 by Mulia Nasution
Page 54: Composer Panada Conference 2014 by Mulia Nasution
Page 55: Composer Panada Conference 2014 by Mulia Nasution
Page 56: Composer Panada Conference 2014 by Mulia Nasution

Hooks

Page 57: Composer Panada Conference 2014 by Mulia Nasution
Page 58: Composer Panada Conference 2014 by Mulia Nasution
Page 59: Composer Panada Conference 2014 by Mulia Nasution

Custom Repository

Page 60: Composer Panada Conference 2014 by Mulia Nasution
Page 61: Composer Panada Conference 2014 by Mulia Nasution

vcs, git, svn, hg,

composer, zip

Repository type

Page 62: Composer Panada Conference 2014 by Mulia Nasution

Use local packagist

Page 63: Composer Panada Conference 2014 by Mulia Nasution
Page 64: Composer Panada Conference 2014 by Mulia Nasution

Satis

Page 65: Composer Panada Conference 2014 by Mulia Nasution

composer create-project composer/satis --stability=dev

Create “satis.json” file

./bin/satis build satis.json output-dir

Page 66: Composer Panada Conference 2014 by Mulia Nasution
Page 67: Composer Panada Conference 2014 by Mulia Nasution
Page 68: Composer Panada Conference 2014 by Mulia Nasution
Page 69: Composer Panada Conference 2014 by Mulia Nasution

Conclusie

Page 70: Composer Panada Conference 2014 by Mulia Nasution

Question?

Page 71: Composer Panada Conference 2014 by Mulia Nasution
Page 72: Composer Panada Conference 2014 by Mulia Nasution

Thanks

Conference 2014

Mulia Arifandi Nasution

[email protected]

@mul14