57ffc9d59b
Changed some some instances of the $package variable name to be able to be consistent in all branches of the "add to request" section of code. Updated an instance of "break" to "continue 2" as it was resulting in the same package getting both update() and install() called on request. Seems like this is probably not needed, should be just one or the other? (could be way wrong on this) Gave "locked" branch of the update/locked/install code some logic to handle internally installed packages. |
||
---|---|---|
bin | ||
doc | ||
src/Composer | ||
tests | ||
.gitignore | ||
.travis.yml | ||
LICENSE | ||
PORTING_INFO | ||
README.md | ||
composer.json | ||
composer.lock | ||
phpunit.xml.dist |
README.md
Composer - Package Management for PHP
Composer is a package manager tracking local dependencies of your projects and libraries.
See the about page on packagist.org for more information.
Installation / Usage
-
Download the
composer.phar
executable or use the installer.$ curl -s http://getcomposer.org/installer | php
-
Create a composer.json defining your dependencies. Note that this example is a short version for applications that are not meant to be published as packages themselves. To create libraries/packages please read the guidelines.
{ "require": { "monolog/monolog": ">=1.0.0" } }
-
Run Composer:
php composer.phar install
-
Browse for more packages on Packagist.
Installation from Source
To run tests, or develop Composer itself, you must use the sources and not the phar file as described above.
- Run
git clone https://github.com/composer/composer.git
- Download the
composer.phar
executable - Run Composer to get the dependencies:
php composer.phar install
Global installation of composer (manual)
Since composer works with the current working directory it is possible to install it in a system wide way.
- Change into a directory in your path like
cd /usr/local/bin
- Get composer
curl -s http://getcomposer.org/installer | php
- Make the phar executeable
chmod a+x composer.phar
- Change into a project directory
cd /path/to/my/project
- Use composer as you normally would
composer.phar install
- Optionally you can rename the composer.phar to composer to make it easier
Global installation of composer (via homebrew)
Installing via this homebrew formula will always get you the latest composer version.
- run
brew uninstall composer ; brew install --HEAD https://raw.github.com/gist/1574469/composer.rb
- Change into a project directory
cd /path/to/my/project
- Use composer as you normally would
composer.phar install
You will see a warning "Warning: Cannot verify package integrity"; however, this is benign and expected.
Updating composer
Running php composer.phar self-update
or equivalent will update a phar
install with the latest version.
Configuration
Additional options for composer can be configured in composer.json
by using the config
section.
{
"config": {
"vendor-dir": "custom/path/for/vendor"
}
}
vendor-dir
: The location to install vendor packages. The location can be supplied as an absolute or relative path but must be within the current working directory.
Contributing
All code contributions - including those of people having commit access - must go through a pull request and approved by a core developer before being merged. This is to ensure proper review of all the code.
Fork the project, create a feature branch, and send us a pull request.
If you would like to help take a look at the list of issues.
Community
The developer mailing list is on google groups IRC channels are available for discussion as well, on irc.freenode.org #composer for users and #composer-dev for development.
Requirements
PHP 5.3+
Authors
Nils Adermann - naderman@naderman.de - http://twitter.com/naderman - http://www.naderman.de
Jordi Boggiano - j.boggiano@seld.be - http://twitter.com/seldaek - http://seld.be
See also the list of contributors who participated in this project.
License
Composer is licensed under the MIT License - see the LICENSE file for details
Acknowledgments
This project's Solver started out as a PHP port of openSUSE's Libzypp satsolver.