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/ [...]
php composer.phar create-project <package> [<dir>] [<version>] php composer.phar create-project symfony/framework-standard-edition
{ "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": "*" } }
Source install: With install --prefer-source
it clones/checks out the code.
{ "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/"} } }
Note: Package Definition === Application/Root Definition
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(); // ...
Add your own namespaces for testing purposes in PHPUnit's bootstrap:
# tests/bootstrap.php $loader = require __DIR__.'/../vendor/autoload.php'; $loader->add('My\Test', __DIR__);
"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
"repositories": [ { "type": "vcs", "url": "git://github.com/my/monolog.git" } ] "require": { "symfony/monolog-bundle": "2.0.10", "monolog/monolog": "dev-my-feature-branch as 1.1.0" }