composer - panada conference 2014

73
Composer PHP Dependency Manager Mulia Arifandi Nasution — @mul14 Conference 2014

Upload: mulia-arifandi-nasution

Post on 16-Jul-2015

132 views

Category:

Software


0 download

TRANSCRIPT

ComposerPHP Dependency Manager

Mulia Arifandi Nasution — @mul14

Conference 2014

Other communities

Long time ago…

History

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 Versioning semver.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 Global

$HOME/.composer

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?

Thanks

Conference 2014

Mulia Arifandi Nasution

[email protected]

@mul14