Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Composer: Dependency
Manager for PHP
Guillermo A. Fisher
What is a Dependency?
A dependency is a library of code that your
project needs in order to function.
What is a Dependency?
<?php
// Your project needs the “HelloWorld” library
require ‘/path/to/HelloWorld.php’;
// Now that ...
What is a Dependency?
The project in the example is dependent upon
the “HelloWorld” library.
Dependency Dependencies
Sometimes your dependencies will have their
own dependencies.
Dependency Dependencies
<?php
// “HelloWorld” needs the “Hello” library
require ‘/path/to/Hello.php’;
class HelloWorld ext...
Managing Dependencies
● What libraries am I using?
● What versions of those libraries am I using?
● What libraries do my l...
Managing Dependencies
Dependency Managers
● Maven for Java
● bundler for Ruby
● npm for Node.js
PHP Dependency Managers
Composer - http://getcomposer.org
Use when managing dependencies for a
single project
PEAR - http:...
What is Composer?
“Composer is a tool for dependency
management in PHP. It allows you to declare
the dependent libraries y...
Why Composer?
● You have a project that depends on a
number of libraries.
● Some of those libraries depend on other
librar...
Download Composer
● Need PHP 5.3.2+
● Download Composer
● For information about installing on your OS,
visit http://getcom...
Get Started Using Composer
$ cd myproject
$ curl -sS https://getcomposer.org/installer |
php
$ vi composer.json
$ php comp...
Declaring Dependencies
Project dependencies are declared in a
composer.json file.
Declaring Dependencies
Your project depends on “monolog” (http://bit.
ly/1bjz17Z) to log information.
$log = new MonologLo...
composer.json
{
“require”: {
“monolog/monolog”: “1.0.*”
}
}
composer.json : require
The require key tells Composer which
packages your project depends on.
composer.json : require
“Package names are mapped to package
versions.”
// “vendor/project”: “version”
“monolog/monolog”: ...
Packagist
“Packagist (http://packagist.org) is the main
Composer repository. A Composer
repository is basically a package ...
Autoloading
“Composer generates a vendor/autoload.php file.
You can simply include this file and you will get
autoloading ...
composer.lock
“After installing the dependencies, Composer
writes the list of the exact versions it installed
into a compo...
Updating Dependencies
New versions of your project’s dependencies
will more than likely be released. “To update to
the new...
Updating Dependencies
$ php composer.phar update
References
Composer
http://getcomposer.org
Packagist
http://packagist.org
PHP The Right Way
http://phptherightway.com
Upcoming SlideShare
Loading in …5
×

Composer: Dependency Manager for PHP

234 views

Published on

Composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Composer: Dependency Manager for PHP

  1. 1. Composer: Dependency Manager for PHP Guillermo A. Fisher
  2. 2. What is a Dependency? A dependency is a library of code that your project needs in order to function.
  3. 3. What is a Dependency? <?php // Your project needs the “HelloWorld” library require ‘/path/to/HelloWorld.php’; // Now that we have the code, we can say hi! $greeter = new HelloWorld(); $greeter->sayHello();
  4. 4. What is a Dependency? The project in the example is dependent upon the “HelloWorld” library.
  5. 5. Dependency Dependencies Sometimes your dependencies will have their own dependencies.
  6. 6. Dependency Dependencies <?php // “HelloWorld” needs the “Hello” library require ‘/path/to/Hello.php’; class HelloWorld extends Hello { … }
  7. 7. Managing Dependencies ● What libraries am I using? ● What versions of those libraries am I using? ● What libraries do my libraries need? ● What versions of those libraries do my libraries need? ● Where can I find those libraries?
  8. 8. Managing Dependencies
  9. 9. Dependency Managers ● Maven for Java ● bundler for Ruby ● npm for Node.js
  10. 10. PHP Dependency Managers Composer - http://getcomposer.org Use when managing dependencies for a single project PEAR - http://pear.php.net Use when managing dependencies for PHP on your system (multiple projects)
  11. 11. What is Composer? “Composer is a tool for dependency management in PHP. It allows you to declare the dependent libraries your project needs and it will install them in your project for you.”
  12. 12. Why Composer? ● You have a project that depends on a number of libraries. ● Some of those libraries depend on other libraries. ● You declare the things you depend on. ● Composer finds out which versions of which packages need to be installed and installs them.
  13. 13. Download Composer ● Need PHP 5.3.2+ ● Download Composer ● For information about installing on your OS, visit http://getcomposer.org/download
  14. 14. Get Started Using Composer $ cd myproject $ curl -sS https://getcomposer.org/installer | php $ vi composer.json $ php composer.phar install
  15. 15. Declaring Dependencies Project dependencies are declared in a composer.json file.
  16. 16. Declaring Dependencies Your project depends on “monolog” (http://bit. ly/1bjz17Z) to log information. $log = new MonologLogger(‘name’); $log->pushHandler(new MonologHandlerStreamHandler(‘app.log’, MonologLogger::WARNING)); $log->addWarning(‘Foo’);
  17. 17. composer.json { “require”: { “monolog/monolog”: “1.0.*” } }
  18. 18. composer.json : require The require key tells Composer which packages your project depends on.
  19. 19. composer.json : require “Package names are mapped to package versions.” // “vendor/project”: “version” “monolog/monolog”: “1.0.*”
  20. 20. Packagist “Packagist (http://packagist.org) is the main Composer repository. A Composer repository is basically a package source: a place where you can get packages from.”
  21. 21. Autoloading “Composer generates a vendor/autoload.php file. You can simply include this file and you will get autoloading for free.”
  22. 22. composer.lock “After installing the dependencies, Composer writes the list of the exact versions it installed into a composer.lock file. This locks the project to those specific versions… Commit your application’s composer.lock (along with composer. json) into version control.”
  23. 23. Updating Dependencies New versions of your project’s dependencies will more than likely be released. “To update to the new version, use [the] update command. This will fetch the latest matching versions (according to your composer.json file) and also update the lock file with the new version.”
  24. 24. Updating Dependencies $ php composer.phar update
  25. 25. References Composer http://getcomposer.org Packagist http://packagist.org PHP The Right Way http://phptherightway.com

×