Composer - Package Management for PHP. Silver Bullet?
Upcoming SlideShare
Loading in...5
×
 

Composer - Package Management for PHP. Silver Bullet?

on

  • 7,053 views

Modern package management for PHP projects.

Modern package management for PHP projects.
http://packagist.org/
http://github.com/composer/composer

Statistics

Views

Total Views
7,053
Views on SlideShare
6,935
Embed Views
118

Actions

Likes
4
Downloads
28
Comments
0

4 Embeds 118

http://www.sfexception.com 73
http://frameworksdays.com 37
http://a0.twimg.com 6
https://twitter.com 2

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Composer - Package Management for PHP. Silver Bullet? Composer - Package Management for PHP. Silver Bullet? Presentation Transcript

    • Composer — Package Management for PHP. Silver Bullet? Kirill chEbba Chebunin Billix [email_address] http://github.com/chEbba @iamchEbba
    • Problem
    • Dependent Libraries
    • Dependent Libraries
    • Dependent Libraries
    • Many Separate Projects
    • Overview of Tools
      • Python: easy_install, pip
      • Ruby: gems
      • Java: maven, ivy
      • C#(.NET): NuGet, NuPack
      • PHP: PEAR/Pyrus
    • PEAR. Why NOT?
      • #pyrus mypear = hack
      • Channel1/Package1 != Channel2/Package1
      • No “Source”, only “Dists”
      • Special Package Type (+/-)
    • Composer. Silver Bullet?
    • Composer. Simple
      • #wget http://getcomposer.org/composer.phar
      • #vi /path/to/project/.composer.json
      • #php composer.phar install
      • PEAR package on release?
    • Composer. File
      • {
      • "require" : {
      • "vendor/package1" : "1.3.2" ,
      • "vendor/package2" : "1.*" ,
      • "vendor/package3" : ">=2.0.3"
      • }
      • }
    • Composer. Fundamentals
      • Package Repository = Metadata
      • Storage Separated from Repository
      • Unique Package Name = vendor/package
      • Different Storage Types (Downloaders)
      • “ Source” & “Dist”
      • Dependecy Resolver
    • Composer. Repository File
      • "composer / composer" :{
      • "name" : "composer / composer" ,
      • "description" : "Package Manager" ,
      • "maintainers" :[],
      • "versions" :{
      • "master-dev" :{
      • "require" :{
      • "php" : ">=5.3.0" ,
      • "symfony / console" : "2.0.5" ,
      • "symfony / finder" : "2.0.5"
      • }
      • }
      • }
      • }
    • Composer. Repository
      • PlatformRepository (php & extensions)
      • ComposerRepository ($url/composer.json)
      • PearRepository (PEAR channel support)
      • VcsRepository (github, git, svn, hg)
      • LocalRepository?
    • Composer. Downloader
      • "source" :{
      • "type" : "git" ,
      • "url" : "http: // github.com / composer / composer.git" ,
      • "reference" : "e6c3929ea9f7d732ed3352dc06ed950af140ebf7" ,
      • "shasum" : ""
      • },
      • "dist" :{
      • "type" : "zip" ,
      • &quot;url&quot; : &quot;<...>e6c3929ea9f7d732ed3352dc06ed950af140ebf7&quot; ,
      • &quot;shasum&quot; : &quot;e32a4bac17d56533393b856699491c4c02f3e1ab&quot; ,
      • &quot;reference&quot; : &quot;e6c3929ea9f7d732ed3352dc06ed950af140ebf7&quot;
      • }
    • Composer. Downloader
      • ZipDownloader (dist)
      • TarDownloader (dist: tar, tar.gz, tar.bz2)
      • PharDownloader (dist)
      • PearDownloader (dist: uses tar)
      • GitDownloader (source)
      • HgDownloader (source)
    • Composer. Installer
      • LibraryInstaller (vendor/*)
      • &quot;composer / composer&quot; :{
      • &quot;name&quot; : &quot;composer / composer&quot; ,
      • &quot;description&quot; : &quot;Package Manager&quot; ,
      • &quot;type&quot; : &quot;library&quot;
      • }
    • Composer. Dependency Resolver
      • OpenSUSE's Libzypp satsolver
      • Requires
      • Conflicts
      • Provides
      • Replaces
      • Recommends
      • Suggests
    • Composer. Dependency Resolver
      • &quot;require&quot; :{
      • &quot;php&quot; : &quot;>=5.3.0&quot; ,
      • &quot;symfony / console&quot; : &quot;2.0.5&quot; ,
      • &quot;symfony / finder&quot; : &quot;2.0.5&quot;
      • }
    • Composer. Autoload
      • PSR-0 Autoloading (.composer/autoload.php)
      • &quot;versions&quot; :{
      • &quot;master-dev&quot; :{
      • &quot;autoload&quot; :{
      • &quot;psr-0&quot; :{
      • &quot;Composer&quot; : &quot;src / &quot;
      • }
      • }
      • }
      • }
    • Questions? =)