Composer
Upcoming SlideShare
Loading in...5
×
 

Composer

on

  • 243 views

 

Statistics

Views

Total Views
243
Views on SlideShare
230
Embed Views
13

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 13

http://symfony2developer.com 13

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

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 Composer Presentation Transcript

  • ComposerCees van EgmondCliff OdijkFriday, April 26, 13
  • Wat is composer?• Managen van afhankelijkheden• Ontwikkeld voor PHP• Automatisch downloaden van dezeafhankelijkheden middels• Te gebruiken via de command-lineFriday, April 26, 13
  • Welke problemen?• Onnodige ‘requires of includes’ d.m.vautoloading• Afhankelijkheden kunnen ookafhankelijkheden hebben• Beschrijven van afhankelijkheden die je zelfnodig hebt• Verschillende versies van ‘libraries’Friday, April 26, 13
  • Hoe te gebruiken?• Download ‘composer.phar’• Maak een composer.json aan• php composer.phar installFriday, April 26, 13
  • composer.json{        "name":  "symfony/symfony",        "type":  "library",        "description":  "The  Symfony  PHP  framework",        "keywords":  ["framework"],        "homepage":  "http://symfony.com",        "license":  "MIT",        "authors":  [                {                        "name":  "Fabien  Potencier",                        "email":  "fabien@symfony.com"                }        ],        "require":  {                "php":  ">=5.3.3",                "twig/twig":  "~1.11.5",                "psr/log":  "1.0.*",                "jcid/framework":  "2.0.*@dev"        },        "autoload":  {                "psr-­‐0":  {  "Symfony":  "src/"  },                "classmap":  [                        "src/Symfony/Component/HttpFoundation/Resources/stubs",                        "src/Symfony/Component/Intl/Resources/stubs"                ],                "files":  [  "src/Symfony/Component/Intl/Resources/stubs/functions.php"  ]        },        "minimum-­‐stability":  "dev"}Friday, April 26, 13
  • composer.json{        "name":  "symfony/symfony",        "type":  "library",        "description":  "The  Symfony  PHP  framework",        "keywords":  ["framework"],        "homepage":  "http://symfony.com",        "license":  "MIT",        "authors":  [                {                        "name":  "Fabien  Potencier",                        "email":  "fabien@symfony.com"                }        ],        "require":  {                "php":  ">=5.3.3",                "twig/twig":  "~1.11.5",                "psr/log":  "1.0.*",                "jcid/framework":  "2.0.*@dev"        },        "autoload":  {                "psr-­‐0":  {  "Symfony":  "src/"  },                "classmap":  [                        "src/Symfony/Component/HttpFoundation/Resources/stubs",                        "src/Symfony/Component/Intl/Resources/stubs"                ],                "files":  [  "src/Symfony/Component/Intl/Resources/stubs/functions.php"  ]        },        "minimum-­‐stability":  "dev"}Friday, April 26, 13
  • composer.json{        "name":  "symfony/symfony",        "type":  "library",        "description":  "The  Symfony  PHP  framework",        "keywords":  ["framework"],        "homepage":  "http://symfony.com",        "license":  "MIT",        "authors":  [                {                        "name":  "Fabien  Potencier",                        "email":  "fabien@symfony.com"                }        ],        "require":  {                "php":  ">=5.3.3",                "twig/twig":  "~1.11.5",                "psr/log":  "1.0.*",                "jcid/framework":  "2.0.*@dev"        },        "autoload":  {                "psr-­‐0":  {  "Symfony":  "src/"  },                "classmap":  [                        "src/Symfony/Component/HttpFoundation/Resources/stubs",                        "src/Symfony/Component/Intl/Resources/stubs"                ],                "files":  [  "src/Symfony/Component/Intl/Resources/stubs/functions.php"  ]        },        "minimum-­‐stability":  "dev"}* library* project* metapackage* composer-installer* customFriday, April 26, 13
  • composer.json{        "name":  "symfony/symfony",        "type":  "library",        "description":  "The  Symfony  PHP  framework",        "keywords":  ["framework"],        "homepage":  "http://symfony.com",        "license":  "MIT",        "authors":  [                {                        "name":  "Fabien  Potencier",                        "email":  "fabien@symfony.com"                }        ],        "require":  {                "php":  ">=5.3.3",                "twig/twig":  "~1.11.5",                "psr/log":  "1.0.*",                "jcid/framework":  "2.0.*@dev"        },        "autoload":  {                "psr-­‐0":  {  "Symfony":  "src/"  },                "classmap":  [                        "src/Symfony/Component/HttpFoundation/Resources/stubs",                        "src/Symfony/Component/Intl/Resources/stubs"                ],                "files":  [  "src/Symfony/Component/Intl/Resources/stubs/functions.php"  ]        },        "minimum-­‐stability":  "dev"}Friday, April 26, 13
  • composer.json{        "name":  "symfony/symfony",        "type":  "library",        "description":  "The  Symfony  PHP  framework",        "keywords":  ["framework"],        "homepage":  "http://symfony.com",        "license":  "MIT",        "authors":  [                {                        "name":  "Fabien  Potencier",                        "email":  "fabien@symfony.com"                }        ],        "require":  {                "php":  ">=5.3.3",                "twig/twig":  "~1.11.5",                "psr/log":  "1.0.*",                "jcid/framework":  "2.0.*@dev"        },        "autoload":  {                "psr-­‐0":  {  "Symfony":  "src/"  },                "classmap":  [                        "src/Symfony/Component/HttpFoundation/Resources/stubs",                        "src/Symfony/Component/Intl/Resources/stubs"                ],                "files":  [  "src/Symfony/Component/Intl/Resources/stubs/functions.php"  ]        },        "minimum-­‐stability":  "dev"}Friday, April 26, 13
  • composer.json{        "name":  "symfony/symfony",        "type":  "library",        "description":  "The  Symfony  PHP  framework",        "keywords":  ["framework"],        "homepage":  "http://symfony.com",        "license":  "MIT",        "authors":  [                {                        "name":  "Fabien  Potencier",                        "email":  "fabien@symfony.com"                }        ],        "require":  {                "php":  ">=5.3.3",                "twig/twig":  "~1.11.5",                "psr/log":  "1.0.*",                "jcid/framework":  "2.0.*@dev"        },        "autoload":  {                "psr-­‐0":  {  "Symfony":  "src/"  },                "classmap":  [                        "src/Symfony/Component/HttpFoundation/Resources/stubs",                        "src/Symfony/Component/Intl/Resources/stubs"                ],                "files":  [  "src/Symfony/Component/Intl/Resources/stubs/functions.php"  ]        },        "minimum-­‐stability":  "dev"}Friday, April 26, 13
  • composer.json{        "name":  "symfony/symfony",        "type":  "library",        "description":  "The  Symfony  PHP  framework",        "keywords":  ["framework"],        "homepage":  "http://symfony.com",        "license":  "MIT",        "authors":  [                {                        "name":  "Fabien  Potencier",                        "email":  "fabien@symfony.com"                }        ],        "require":  {                "php":  ">=5.3.3",                "twig/twig":  "~1.11.5",                "psr/log":  "1.0.*",                "jcid/framework":  "2.0.*@dev"        },        "autoload":  {                "psr-­‐0":  {  "Symfony":  "src/"  },                "classmap":  [                        "src/Symfony/Component/HttpFoundation/Resources/stubs",                        "src/Symfony/Component/Intl/Resources/stubs"                ],                "files":  [  "src/Symfony/Component/Intl/Resources/stubs/functions.php"  ]        },        "minimum-­‐stability":  "dev"}Friday, April 26, 13
  • composer.json{        "name":  "symfony/symfony",        "type":  "library",        "description":  "The  Symfony  PHP  framework",        "keywords":  ["framework"],        "homepage":  "http://symfony.com",        "license":  "MIT",        "authors":  [                {                        "name":  "Fabien  Potencier",                        "email":  "fabien@symfony.com"                }        ],        "require":  {                "php":  ">=5.3.3",                "twig/twig":  "~1.11.5",                "psr/log":  "1.0.*",                "jcid/framework":  "2.0.*@dev"        },        "autoload":  {                "psr-­‐0":  {  "Symfony":  "src/"  },                "classmap":  [                        "src/Symfony/Component/HttpFoundation/Resources/stubs",                        "src/Symfony/Component/Intl/Resources/stubs"                ],                "files":  [  "src/Symfony/Component/Intl/Resources/stubs/functions.php"  ]        },        "minimum-­‐stability":  "dev"}Friday, April 26, 13
  • composer.json{        "name":  "symfony/symfony",        "type":  "library",        "description":  "The  Symfony  PHP  framework",        "keywords":  ["framework"],        "homepage":  "http://symfony.com",        "license":  "MIT",        "authors":  [                {                        "name":  "Fabien  Potencier",                        "email":  "fabien@symfony.com"                }        ],        "require":  {                "php":  ">=5.3.3",                "twig/twig":  "~1.11.5",                "psr/log":  "1.0.*",                "jcid/framework":  "2.0.*@dev"        },        "autoload":  {                "psr-­‐0":  {  "Symfony":  "src/"  },                "classmap":  [                        "src/Symfony/Component/HttpFoundation/Resources/stubs",                        "src/Symfony/Component/Intl/Resources/stubs"                ],                "files":  [  "src/Symfony/Component/Intl/Resources/stubs/functions.php"  ]        },        "minimum-­‐stability":  "dev"}Friday, April 26, 13
  • composer.json{        "name":  "symfony/symfony",        "type":  "library",        "description":  "The  Symfony  PHP  framework",        "keywords":  ["framework"],        "homepage":  "http://symfony.com",        "license":  "MIT",        "authors":  [                {                        "name":  "Fabien  Potencier",                        "email":  "fabien@symfony.com"                }        ],        "require":  {                "php":  ">=5.3.3",                "twig/twig":  "~1.11.5",                "psr/log":  "1.0.*",                "jcid/framework":  "2.0.*@dev"        },        "autoload":  {                "psr-­‐0":  {  "Symfony":  "src/"  },                "classmap":  [                        "src/Symfony/Component/HttpFoundation/Resources/stubs",                        "src/Symfony/Component/Intl/Resources/stubs"                ],                "files":  [  "src/Symfony/Component/Intl/Resources/stubs/functions.php"  ]        },        "minimum-­‐stability":  "dev"}>=1.11.5,<1.12Friday, April 26, 13
  • composer.json{        "name":  "symfony/symfony",        "type":  "library",        "description":  "The  Symfony  PHP  framework",        "keywords":  ["framework"],        "homepage":  "http://symfony.com",        "license":  "MIT",        "authors":  [                {                        "name":  "Fabien  Potencier",                        "email":  "fabien@symfony.com"                }        ],        "require":  {                "php":  ">=5.3.3",                "twig/twig":  "~1.11.5",                "psr/log":  "1.0.*",                "jcid/framework":  "2.0.*@dev"        },        "autoload":  {                "psr-­‐0":  {  "Symfony":  "src/"  },                "classmap":  [                        "src/Symfony/Component/HttpFoundation/Resources/stubs",                        "src/Symfony/Component/Intl/Resources/stubs"                ],                "files":  [  "src/Symfony/Component/Intl/Resources/stubs/functions.php"  ]        },        "minimum-­‐stability":  "dev"}Friday, April 26, 13
  • composer.json{        "name":  "symfony/symfony",        "type":  "library",        "description":  "The  Symfony  PHP  framework",        "keywords":  ["framework"],        "homepage":  "http://symfony.com",        "license":  "MIT",        "authors":  [                {                        "name":  "Fabien  Potencier",                        "email":  "fabien@symfony.com"                }        ],        "require":  {                "php":  ">=5.3.3",                "twig/twig":  "~1.11.5",                "psr/log":  "1.0.*",                "jcid/framework":  "2.0.*@dev"        },        "autoload":  {                "psr-­‐0":  {  "Symfony":  "src/"  },                "classmap":  [                        "src/Symfony/Component/HttpFoundation/Resources/stubs",                        "src/Symfony/Component/Intl/Resources/stubs"                ],                "files":  [  "src/Symfony/Component/Intl/Resources/stubs/functions.php"  ]        },        "minimum-­‐stability":  "dev"}* dev* alpha* beta* RC* stableFriday, April 26, 13
  • composer.json{        "name":  "symfony/symfony",        "type":  "library",        "description":  "The  Symfony  PHP  framework",        "keywords":  ["framework"],        "homepage":  "http://symfony.com",        "license":  "MIT",        "authors":  [                {                        "name":  "Fabien  Potencier",                        "email":  "fabien@symfony.com"                }        ],        "require":  {                "php":  ">=5.3.3",                "twig/twig":  "~1.11.5",                "psr/log":  "1.0.*",                "jcid/framework":  "2.0.*@dev"        },        "autoload":  {                "psr-­‐0":  {  "Symfony":  "src/"  },                "classmap":  [                        "src/Symfony/Component/HttpFoundation/Resources/stubs",                        "src/Symfony/Component/Intl/Resources/stubs"                ],                "files":  [  "src/Symfony/Component/Intl/Resources/stubs/functions.php"  ]        },        "minimum-­‐stability":  "dev"}Friday, April 26, 13
  • composer.json{        "name":  "symfony/symfony",        "type":  "library",        "description":  "The  Symfony  PHP  framework",        "keywords":  ["framework"],        "homepage":  "http://symfony.com",        "license":  "MIT",        "authors":  [                {                        "name":  "Fabien  Potencier",                        "email":  "fabien@symfony.com"                }        ],        "require":  {                "php":  ">=5.3.3",                "twig/twig":  "~1.11.5",                "psr/log":  "1.0.*",                "jcid/framework":  "2.0.*@dev"        },        "autoload":  {                "psr-­‐0":  {  "Symfony":  "src/"  },                "classmap":  [                        "src/Symfony/Component/HttpFoundation/Resources/stubs",                        "src/Symfony/Component/Intl/Resources/stubs"                ],                "files":  [  "src/Symfony/Component/Intl/Resources/stubs/functions.php"  ]        },        "minimum-­‐stability":  "dev"}Friday, April 26, 13
  • composer.json{        "name":  "symfony/symfony",        "type":  "library",        "description":  "The  Symfony  PHP  framework",        "keywords":  ["framework"],        "homepage":  "http://symfony.com",        "license":  "MIT",        "authors":  [                {                        "name":  "Fabien  Potencier",                        "email":  "fabien@symfony.com"                }        ],        "require":  {                "php":  ">=5.3.3",                "twig/twig":  "~1.11.5",                "psr/log":  "1.0.*",                "jcid/framework":  "2.0.*@dev"        },        "autoload":  {                "psr-­‐0":  {  "Symfony":  "src/"  },                "classmap":  [                        "src/Symfony/Component/HttpFoundation/Resources/stubs",                        "src/Symfony/Component/Intl/Resources/stubs"                ],                "files":  [  "src/Symfony/Component/Intl/Resources/stubs/functions.php"  ]        },        "minimum-­‐stability":  "dev"}Friday, April 26, 13
  • composer.json{        "name":  "symfony/symfony",        "type":  "library",        "description":  "The  Symfony  PHP  framework",        "keywords":  ["framework"],        "homepage":  "http://symfony.com",        "license":  "MIT",        "authors":  [                {                        "name":  "Fabien  Potencier",                        "email":  "fabien@symfony.com"                }        ],        "require":  {                "php":  ">=5.3.3",                "twig/twig":  "~1.11.5",                "psr/log":  "1.0.*",                "jcid/framework":  "2.0.*@dev"        },        "autoload":  {                "psr-­‐0":  {  "Symfony":  "src/"  },                "classmap":  [                        "src/Symfony/Component/HttpFoundation/Resources/stubs",                        "src/Symfony/Component/Intl/Resources/stubs"                ],                "files":  [  "src/Symfony/Component/Intl/Resources/stubs/functions.php"  ]        },        "minimum-­‐stability":  "dev"}Friday, April 26, 13
  • composer.json{        "name":  "symfony/symfony",        "type":  "library",        "description":  "The  Symfony  PHP  framework",        "keywords":  ["framework"],        "homepage":  "http://symfony.com",        "license":  "MIT",        "authors":  [                {                        "name":  "Fabien  Potencier",                        "email":  "fabien@symfony.com"                }        ],        "require":  {                "php":  ">=5.3.3",                "twig/twig":  "~1.11.5",                "psr/log":  "1.0.*",                "jcid/framework":  "2.0.*@dev"        },        "autoload":  {                "psr-­‐0":  {  "Symfony":  "src/"  },                "classmap":  [                        "src/Symfony/Component/HttpFoundation/Resources/stubs",                        "src/Symfony/Component/Intl/Resources/stubs"                ],                "files":  [  "src/Symfony/Component/Intl/Resources/stubs/functions.php"  ]        },        "minimum-­‐stability":  "dev"}Friday, April 26, 13
  • •require  __DIR__./../vendor/autoload.php;Friday, April 26, 13
  • Really?Friday, April 26, 13
  • Satis• Repository Generator• Statisch• File basedFriday, April 26, 13
  • satis.json{"name": "My Repository","homepage": "http://packages.example.org","repositories": [{ "type": "vcs", "url": "http://github.com/mycompany/privaterepo" },{ "type": "vcs", "url": "http://svn.example.org/private/repo" },{ "type": "vcs", "url": "http://github.com/mycompany/privaterepo2" }],"require-all": true}Friday, April 26, 13
  • composer.json{! "require": {! ! "jcid/framework": "2.0.*",! },! "repositories": [! ! {! ! ! "type": "composer",! ! ! "url": "http://source.jcid.nl/bundles/"! ! }! ]}Friday, April 26, 13
  • Packagist• Repository Generator• Dynamisch• Volledige website• packagist.org standaard repo website• Open SourceFriday, April 26, 13
  • Custom-Installer• Niet standaard manier voor installatie• Custom install path• Extra code vooraf/achteraf• Aantal mogelijkheden geleverd vanuitcomposerFriday, April 26, 13
  • Installers• AGL agl-• CakePHP 2+ cakephp-• CodeIgniter codeigniter-• Drupal drupal-• FuelPHP v1.x fuel-• Joomla joomla-• Kohana kohana-• Laravel laravel-• Lithium lithium-• Magento magento-• Mako mako-• MediaWiki mediawiki-• phpBB phpbb-• PPI ppi-• SilverStripe silverstripe-• Symfony1 symfony1-Friday, April 26, 13
  • CakePHP Plugin{        "name":  "you/ftp",        "type":  "cakephp-­‐plugin",        "require":  {                "composer/installers":  "~1.0"        }}{        "require":  {                "you/ftp":  "~1.0"        }}Friday, April 26, 13
  • Q&AFriday, April 26, 13