Passionate Free Software Developer
 http://github.com/naderman
phpBB Development Lead
 http://www.phpbb.com
Professional Managed phpBB Hosting
 https://www.forumatic.com
git clone https://github.com/symfony/standard-edition myproject
Cloning into myproject...
cd myproject/
curl -s http://getcomposer.org/installer | php
All settings correct for using Composer
Composer successfully installed to: /home/bob/myproject/composer.phar
Use it: php composer.phar
php composer.phar install
Installing from lock file
- Package twig/extensions (dev-master)
Downloading
Unpacking archive
Cleaning up
[...]
- Package twig/twig (1.8.0)
Downloading
Unpacking archive
Cleaning up
- Package symfony/symfony (dev-master)
Downloading
Unpacking archive
Cleaning up
Generating autoload files
vendor/
autoload.php
composer/
monolog/
monolog/
symfony/
symfony/
monolog-bundle/
twig/
twig/
extensions/
[...]
{
"require": {
"silex/silex": ">=1.0.0-dev",
"symfony/finder": "2.1-dev",
"twig/twig": "1.*",
"predis/service-provider": "dev-master"
"symfony/console": "~2.1"
},
"require-dev": {
"mikey179/vfsStream": "*"
}
}
{
"name": "predis/predis",
"type": "library",
"description": "Flexible and feature-complete Redis client",
"keywords": ["nosql", "redis", "predis"],
"homepage": "http://github.com/nrk/predis",
"license": "MIT",
"authors": [
{
"name": "Daniele Alessandri",
"email": "suppakilla@gmail.com",
"homepage": "http://clorophilla.net"
}
],
"require": {
"php": ">=5.3.0"
},
"autoload": {
"psr-0": {"Predis": "lib/"}
}
}
composer install (installs your dependencies)composer update (updates your dependencies)Libraries/projects define their namespaces:
"autoload": {
"psr-0": {
"Vendor\\Namespace": "lib/"
},
"classmap": ["src/", "VeryOld.php"]
},
"include-path": ["src/", ""]
Composer builds an autoloader for you:
vendor/autoload.php
Use the generated autoloader:
require __DIR__.'/../vendor/autoload.php';
use Silex\Application;
use Silex\Extension\TwigExtension;
use Symfony\Component\Finder\Finder;
use Symfony\Component\HttpFoundation\Response;
$app = new Application();
// ...
"repositories": [
{
"type": "composer",
"url": "http://private.satis.example.org"
},
{
"type": "vcs",
"url": "git://example.org/MyRepo.git"
},
{
"packagist": false
}
]
See docs for more
"repositories": [
{
"type": "package",
"package": {
"name": "vendor/package",
"version": "1.0.0",
"dist": {
"url": "http://example.org/package.zip",
"type": "zip"
},
"source": {
"url": "git://example.org/package.git",
"type": "git",
"reference": "tag name, branch name or commit hash"
}
}
}
],
"require": {
"vendor/package": "1.0.0"
}
Note: repositories are only available to the root package
(Symfony2, Laravel, Silex, Lithium ...)
(Assetic, Guzzle, Monolog, Twig, Gaufrette, Imagine, ...)