SlideShare a Scribd company logo
Jordi Boggiano
@seldaek
http://nelm.io/

Dependency Management
with Composer
About Me
              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 & frontend performance consulting




Jordi Boggiano                                                 Company nelm.io
Twitter @seldaek                                                   Blog seld.be
Jordi Boggiano     Company nelm.io
Twitter @seldaek       Blog seld.be
Managing
                   Packages vs Dependencies




Jordi Boggiano                                Company nelm.io
Twitter @seldaek                                  Blog seld.be
Package Management in PHP




Jordi Boggiano                                 Company nelm.io
Twitter @seldaek                                   Blog seld.be
The Composer Ecosystem
                        github.com/composer




Jordi Boggiano                                Company nelm.io
Twitter @seldaek                                  Blog seld.be
The Composer Ecosystem
              Composer - CLI Tool
                   Easy to use
                   Installs deps per-project
                   Flexible and embeddable




Jordi Boggiano                                 Company nelm.io
Twitter @seldaek                                   Blog seld.be
The Composer Ecosystem
              Packagist - Package Repository
                   Aggregates PHP libraries
                   Open to all OSS projects
                   Feeds on VCS repositories




Jordi Boggiano                                 Company nelm.io
Twitter @seldaek                                   Blog seld.be
Dependency Management with Composer
Early adopters are loving it




Jordi Boggiano                                    Company nelm.io
Twitter @seldaek                                      Blog seld.be
The Composer Ecosystem
              Satis - Micro Repository
                   Minimalistic
                   Useful for closed code




Jordi Boggiano                               Company nelm.io
Twitter @seldaek                                 Blog seld.be
Usage Instructions
Using a Composed Project
               git clone https://github.com/igorw/trashbin

               Cloning into trashbin...

               cd trashbin/
               curl -s http://getcomposer.org/installer | php

               All settings correct for using Composer
               Composer successfully installed to: /home/bob/trashbin/composer.phar
               Use it: php composer.phar




Jordi Boggiano                                                                    Company nelm.io
Twitter @seldaek                                                                      Blog seld.be
Using a Composed Project
               php composer.phar install

               Installing from lock file
                 - Package symfony/class-loader (2.1.0-dev)
                   Downloading
                   Unpacking archive
                   Cleaning up
               [...]
                   - Package predis/predis (dev-master)
                     Downloading
                     Unpacking archive
                     Cleaning up
                   - Package twig/twig (1.6.0)
                     Downloading
                     Unpacking archive
                     Cleaning up
               Generating autoload files




Jordi Boggiano                                                Company nelm.io
Twitter @seldaek                                                  Blog seld.be
Using a Composed Project
              01 vendor/
              02     .composer/
              03     bin/
              04     pimple/
              05         pimple/
              06     predis/
              07         predis/
              08         service-provider/
              09     silex/
              10         silex/
              11     symfony/
              12         browser-kit/
              13         class-loader/
              14         css-selector/
              15         dom-crawler/
              16         event-dispatcher/
              17         finder/
              18         http-foundation/
              19         http-kernel/
              20         routing/
              21     twig/
              22         twig/




Jordi Boggiano                                              Company nelm.io
Twitter @seldaek                                                Blog seld.be
Downloading Project Dependencies
              composer.json
                   Located in project root directory
                   Defines dependencies
               1 {
               2       "require": {
               3           "silex/silex": ">=1.0.0-dev",
               4           "symfony/finder": "2.1-dev",
               5           "twig/twig": "1.*",
               6           "predis/service-provider": "dev-master"
               7       }
               8 }
              Source install: With install --prefer-source it clones/checks out the code.




Jordi Boggiano                                                                              Company nelm.io
Twitter @seldaek                                                                                Blog seld.be
Creating a Package Definition
              01 {
              02       "name": "predis/predis",
              03       "type": "library",
              04       "description": "Flexible and feature-complete Redis client",
              05       "keywords": ["nosql", "redis", "predis"],
              06       "homepage": "http://github.com/nrk/predis",
              07       "license": "MIT",
              08       "version": "0.7.1"
              09       "authors": [
              10           {
              11               "name": "Daniele Alessandri",
              12               "email": "suppakilla@gmail.com",
              13               "homepage": "http://clorophilla.net"
              14           }
              15       ],
              16       "require": {
              17           "php": ">=5.3.0"
              18       },
              19       "autoload": {
              20           "psr-0": {"Predis": "lib/"}
              21       }
              22 }
              Note: Package Definition === Application/Root Package




Jordi Boggiano                                                                        Company nelm.io
Twitter @seldaek                                                                          Blog seld.be
Avoiding version chaos
                                          in your team
              composer.lock
                   Lists packages & versions
                   Replaces composer.json
                   Created by composer install (installs your dependencies)
                   Updated by composer update (updates your dependencies)
                   Must be committed in your VCS and shipped with your releases
              Benefits
                   Everyone on a team works with exactly the same dependency versions
                   When deploying, all machines run exactly the same dependency versions
                   Users will never get dependency versions that you did not test with




Jordi Boggiano                                                                        Company nelm.io
Twitter @seldaek                                                                          Blog seld.be
Autoloading
              Libraries/projects define their namespaces:
               1 "autoload": {
               2     "psr-0": {"Predis": "lib/"}
               3 }
              Composer builds an autoloader for you:
               1 vendor/.composer/
               2     autoload_namespaces.php
               3     autoload.php
               4     ClassLoader.php
               5     installed.json
              Trashbin uses the generated autoloader:
               1   require_once __DIR__.'/../vendor/.composer/autoload.php';
               2
               3   use SilexApplication;
               4   use SilexExtensionTwigExtension;
               5
               6   use SymfonyComponentFinderFinder;
               7   use SymfonyComponentHttpFoundationResponse;
               8
               9   $app = new Application();



Jordi Boggiano                                                                 Company nelm.io
Twitter @seldaek                                                                   Blog seld.be
Autoloading Tests
              Add your own namespaces for testing purposes in PHPUnit's bootstrap:
               1 # tests/bootstrap.php
               2
               3 $loader = require_once __DIR__.'/../vendor/.composer/autoload.php';
               4
               5 $loader->add('MyTest', __DIR__);




Jordi Boggiano                                                                         Company nelm.io
Twitter @seldaek                                                                           Blog seld.be
Alternative Repositories
              01 "repositories": [
              02     {
              03         "type": "composer",
              04         "url": "http://example.org"
              05     },
              06     {
              07         "type": "vcs",
              08         "url": "git://example.org/MyRepo.git"
              09     },
              10     {
              11         "type": "pear",
              12         "url": "http://pear.example.org"
              13     },
              14     {
              15         "packagist": false
              16     }
              17 ]
              Composer Repository Implementations ($url/packages.json)
                 Packagist
                 Satis
                 (Pirum)




Jordi Boggiano                                                           Company nelm.io
Twitter @seldaek                                                             Blog seld.be
Depending on packages without composer.json
              01   "repositories": [
              02       {
              03           "type": "package",
              04           "package": {
              05               "name": "vendor/package",
              06               "version": "1.0.0",
              07               "dist": {
              08                   "url": "http://example.org/package.zip",
              09                   "type": "zip"
              10               },
              11               "source": {
              12                   "url": "git://example.org/package.git",
              13                   "type": "git",
              14                   "reference": "tag name, branch name or commit hash"
              15               }
              16           }
              17       }
              18   ],
              19   "require": {
              20       "vendor/package": "1.0.0"
              21   }
              Note: repositories are only available to the root package




Jordi Boggiano                                                                           Company nelm.io
Twitter @seldaek                                                                             Blog seld.be
State of the Project




Jordi Boggiano                            Company nelm.io
Twitter @seldaek                              Blog seld.be
Dependency Management with Composer
Adoption
                   >500 packages on Packagist (+150 in
                   Feb.)
                   Alpha1 just released
                   Many early adopters
                   Supported by frameworks/libs
                   Chef recipes http://goo.gl/1QMKp
                   (Integration in apps for plugins)
                   (Integration by PaaS providers)


Jordi Boggiano                                           Company nelm.io
Twitter @seldaek                                             Blog seld.be
Missing Features
                   Human readable error reporting
                   User-friendliness on expected failures
                   Better support for beta/alpha/.. releases
                   Many more little things:
                   github.com/composer/composer/issues




Jordi Boggiano                                                 Company nelm.io
Twitter @seldaek                                                   Blog seld.be
Wishful Thinking
Look around.
                   Write small libs.
                      Share code.
                    Reuse things.
                   Reinvigorate PHP


Jordi Boggiano                         Company nelm.io
Twitter @seldaek                           Blog seld.be
Find Out More
                   GetComposer.org
                   Packagist.org
                   github.com/composer
                   composer-dev google group
                   #composer & #composer-dev



Jordi Boggiano                                 Company nelm.io
Twitter @seldaek                                   Blog seld.be
Thank you.




Jordi Boggiano                  Company nelm.io
Twitter @seldaek                    Blog seld.be
Questions?
                      jordi@nelm.io
                         @seldaek
                      slides.seld.be

                        Feedback:
                   http://joind.in/6051

Jordi Boggiano                            Company nelm.io
Twitter @seldaek                              Blog seld.be

More Related Content

PDF
Composer the right way - SunshinePHP
PPTX
PHP Dependency Management with Composer
PDF
Dependency management with Composer
PDF
Composer for Busy Developers - php|tek13
PPT
Composer - Package Management for PHP. Silver Bullet?
PPTX
Composer | PHP Dependency Manager
ODP
Vagrant move over, here is Docker
Composer the right way - SunshinePHP
PHP Dependency Management with Composer
Dependency management with Composer
Composer for Busy Developers - php|tek13
Composer - Package Management for PHP. Silver Bullet?
Composer | PHP Dependency Manager
Vagrant move over, here is Docker

What's hot (20)

PPTX
Composer for Magento 1.x and Magento 2
PDF
Composer the Right Way - PHPBNL16
PDF
Composer The Right Way - 010PHP
PDF
Php Dependency Management with Composer ZendCon 2016
PDF
Create your own composer package
ODP
PHP Quality Assurance Workshop PHPBenelux
PDF
Composer The Right Way #PHPjhb15
PDF
Deploying Symfony | symfony.cat
PDF
Composer The Right Way
PDF
Composer the right way
PDF
Composer the right way - DPC15
PDF
Composer the Right Way - MM16NL
PDF
Composer the right way [SweetlakePHP]
PDF
Composer the Right Way - PHPSRB16
PDF
Composer the right way - NomadPHP
PDF
Composer The Right Way - PHPUGMRN
PPTX
Python at Facebook
PPTX
Web backends development using Python
ODP
Servlet 3.1 Async I/O
PPTX
Phalcon 2 - PHP Brazil Conference
Composer for Magento 1.x and Magento 2
Composer the Right Way - PHPBNL16
Composer The Right Way - 010PHP
Php Dependency Management with Composer ZendCon 2016
Create your own composer package
PHP Quality Assurance Workshop PHPBenelux
Composer The Right Way #PHPjhb15
Deploying Symfony | symfony.cat
Composer The Right Way
Composer the right way
Composer the right way - DPC15
Composer the Right Way - MM16NL
Composer the right way [SweetlakePHP]
Composer the Right Way - PHPSRB16
Composer the right way - NomadPHP
Composer The Right Way - PHPUGMRN
Python at Facebook
Web backends development using Python
Servlet 3.1 Async I/O
Phalcon 2 - PHP Brazil Conference
Ad

Viewers also liked (18)

PDF
CRISE - INSTITUT 2012 - Brian Mishara - Enjeux et défis en prévention du suic...
PPT
Why Towels
PPT
Trabajo carol sql
PDF
Whitepaper the mobile-commerce-impact
PDF
Solution cz
PPTX
Nolahouse
PPTX
Lgelectronics 110912130948-phpapp02
PPTX
Paypersocials
PDF
Cmmaao action-pmi-pmp
PDF
Những tác phẩm điêu khắc ngoài trời thú vị
DOCX
PPTX
Drupal usage by example : World Food Programme
DOCX
J O B S I
PPTX
Общественный контроль за полицией в Волгодонске
PPTX
Image ideas
PPT
Bloemen
PDF
маски Dual system
PPS
Esculturas de Areia
CRISE - INSTITUT 2012 - Brian Mishara - Enjeux et défis en prévention du suic...
Why Towels
Trabajo carol sql
Whitepaper the mobile-commerce-impact
Solution cz
Nolahouse
Lgelectronics 110912130948-phpapp02
Paypersocials
Cmmaao action-pmi-pmp
Những tác phẩm điêu khắc ngoài trời thú vị
Drupal usage by example : World Food Programme
J O B S I
Общественный контроль за полицией в Волгодонске
Image ideas
Bloemen
маски Dual system
Esculturas de Areia
Ad

Similar to Dependency Management with Composer (20)

PDF
international PHP2011_Jordi Boggiano_PHP Reset
PDF
PHP Reset
PDF
Of metacello, git, scripting and things
PDF
WordPress modern development
KEY
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
PDF
2015 DockerCon Using Docker in production at bity.com
PDF
Intro to Web Components, Polymer & Vaadin Elements
PDF
How to create a local Android open source project mirror in 6 easy steps
PDF
Porion a new Build Manager
KEY
2012 09-04 smart devcon - boot to the web, boot 2 gecko
PDF
DockerCon EU 2015: Trading Bitcoin with Docker
PDF
Monorepo: React Web & React Native
PDF
Building and Customizing CoreOS
PPTX
CNCF Québec Meetup du 16 Novembre 2023
PPTX
CocoaPods.pptx
PDF
Workshop: Introduction to Web Components & Polymer
PPTX
Presentazione resin.io
ODP
Practical git for developers
PDF
Conhecendo o-composer-por-nandokstronet
PDF
Docker Runtime Security
international PHP2011_Jordi Boggiano_PHP Reset
PHP Reset
Of metacello, git, scripting and things
WordPress modern development
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
2015 DockerCon Using Docker in production at bity.com
Intro to Web Components, Polymer & Vaadin Elements
How to create a local Android open source project mirror in 6 easy steps
Porion a new Build Manager
2012 09-04 smart devcon - boot to the web, boot 2 gecko
DockerCon EU 2015: Trading Bitcoin with Docker
Monorepo: React Web & React Native
Building and Customizing CoreOS
CNCF Québec Meetup du 16 Novembre 2023
CocoaPods.pptx
Workshop: Introduction to Web Components & Polymer
Presentazione resin.io
Practical git for developers
Conhecendo o-composer-por-nandokstronet
Docker Runtime Security

Recently uploaded (20)

PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
KodekX | Application Modernization Development
PDF
Approach and Philosophy of On baking technology
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Empathic Computing: Creating Shared Understanding
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Modernizing your data center with Dell and AMD
PDF
Review of recent advances in non-invasive hemoglobin estimation
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
KodekX | Application Modernization Development
Approach and Philosophy of On baking technology
Building Integrated photovoltaic BIPV_UPV.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Understanding_Digital_Forensics_Presentation.pptx
Machine learning based COVID-19 study performance prediction
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Per capita expenditure prediction using model stacking based on satellite ima...
Empathic Computing: Creating Shared Understanding
Encapsulation_ Review paper, used for researhc scholars
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Modernizing your data center with Dell and AMD
Review of recent advances in non-invasive hemoglobin estimation

Dependency Management with Composer

  • 2. About Me 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 & frontend performance consulting Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 3. Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 4. Managing Packages vs Dependencies Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 5. Package Management in PHP Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 6. The Composer Ecosystem github.com/composer Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 7. The Composer Ecosystem Composer - CLI Tool Easy to use Installs deps per-project Flexible and embeddable Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 8. The Composer Ecosystem Packagist - Package Repository Aggregates PHP libraries Open to all OSS projects Feeds on VCS repositories Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 10. Early adopters are loving it Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 11. The Composer Ecosystem Satis - Micro Repository Minimalistic Useful for closed code Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 13. Using a Composed Project git clone https://github.com/igorw/trashbin Cloning into trashbin... cd trashbin/ curl -s http://getcomposer.org/installer | php All settings correct for using Composer Composer successfully installed to: /home/bob/trashbin/composer.phar Use it: php composer.phar Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 14. Using a Composed Project php composer.phar install Installing from lock file - Package symfony/class-loader (2.1.0-dev) Downloading Unpacking archive Cleaning up [...] - Package predis/predis (dev-master) Downloading Unpacking archive Cleaning up - Package twig/twig (1.6.0) Downloading Unpacking archive Cleaning up Generating autoload files Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 15. Using a Composed Project 01 vendor/ 02 .composer/ 03 bin/ 04 pimple/ 05 pimple/ 06 predis/ 07 predis/ 08 service-provider/ 09 silex/ 10 silex/ 11 symfony/ 12 browser-kit/ 13 class-loader/ 14 css-selector/ 15 dom-crawler/ 16 event-dispatcher/ 17 finder/ 18 http-foundation/ 19 http-kernel/ 20 routing/ 21 twig/ 22 twig/ Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 16. Downloading Project Dependencies composer.json Located in project root directory Defines dependencies 1 { 2 "require": { 3 "silex/silex": ">=1.0.0-dev", 4 "symfony/finder": "2.1-dev", 5 "twig/twig": "1.*", 6 "predis/service-provider": "dev-master" 7 } 8 } Source install: With install --prefer-source it clones/checks out the code. Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 17. Creating a Package Definition 01 { 02 "name": "predis/predis", 03 "type": "library", 04 "description": "Flexible and feature-complete Redis client", 05 "keywords": ["nosql", "redis", "predis"], 06 "homepage": "http://github.com/nrk/predis", 07 "license": "MIT", 08 "version": "0.7.1" 09 "authors": [ 10 { 11 "name": "Daniele Alessandri", 12 "email": "suppakilla@gmail.com", 13 "homepage": "http://clorophilla.net" 14 } 15 ], 16 "require": { 17 "php": ">=5.3.0" 18 }, 19 "autoload": { 20 "psr-0": {"Predis": "lib/"} 21 } 22 } Note: Package Definition === Application/Root Package Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 18. Avoiding version chaos in your team composer.lock Lists packages & versions Replaces composer.json Created by composer install (installs your dependencies) Updated by composer update (updates your dependencies) Must be committed in your VCS and shipped with your releases Benefits Everyone on a team works with exactly the same dependency versions When deploying, all machines run exactly the same dependency versions Users will never get dependency versions that you did not test with Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 19. Autoloading Libraries/projects define their namespaces: 1 "autoload": { 2 "psr-0": {"Predis": "lib/"} 3 } Composer builds an autoloader for you: 1 vendor/.composer/ 2 autoload_namespaces.php 3 autoload.php 4 ClassLoader.php 5 installed.json Trashbin uses the generated autoloader: 1 require_once __DIR__.'/../vendor/.composer/autoload.php'; 2 3 use SilexApplication; 4 use SilexExtensionTwigExtension; 5 6 use SymfonyComponentFinderFinder; 7 use SymfonyComponentHttpFoundationResponse; 8 9 $app = new Application(); Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 20. Autoloading Tests Add your own namespaces for testing purposes in PHPUnit's bootstrap: 1 # tests/bootstrap.php 2 3 $loader = require_once __DIR__.'/../vendor/.composer/autoload.php'; 4 5 $loader->add('MyTest', __DIR__); Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 21. Alternative Repositories 01 "repositories": [ 02 { 03 "type": "composer", 04 "url": "http://example.org" 05 }, 06 { 07 "type": "vcs", 08 "url": "git://example.org/MyRepo.git" 09 }, 10 { 11 "type": "pear", 12 "url": "http://pear.example.org" 13 }, 14 { 15 "packagist": false 16 } 17 ] Composer Repository Implementations ($url/packages.json) Packagist Satis (Pirum) Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 22. Depending on packages without composer.json 01 "repositories": [ 02 { 03 "type": "package", 04 "package": { 05 "name": "vendor/package", 06 "version": "1.0.0", 07 "dist": { 08 "url": "http://example.org/package.zip", 09 "type": "zip" 10 }, 11 "source": { 12 "url": "git://example.org/package.git", 13 "type": "git", 14 "reference": "tag name, branch name or commit hash" 15 } 16 } 17 } 18 ], 19 "require": { 20 "vendor/package": "1.0.0" 21 } Note: repositories are only available to the root package Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 23. State of the Project Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 25. Adoption >500 packages on Packagist (+150 in Feb.) Alpha1 just released Many early adopters Supported by frameworks/libs Chef recipes http://goo.gl/1QMKp (Integration in apps for plugins) (Integration by PaaS providers) Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 26. Missing Features Human readable error reporting User-friendliness on expected failures Better support for beta/alpha/.. releases Many more little things: github.com/composer/composer/issues Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 28. Look around. Write small libs. Share code. Reuse things. Reinvigorate PHP Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 29. Find Out More GetComposer.org Packagist.org github.com/composer composer-dev google group #composer & #composer-dev Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 30. Thank you. Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be
  • 31. Questions? jordi@nelm.io @seldaek slides.seld.be Feedback: http://joind.in/6051 Jordi Boggiano Company nelm.io Twitter @seldaek Blog seld.be