- Basic usage
- Command-line interface / Commands
- The composer.json schema
- Runtime Composer utilities
- Aliases Alias branch names to versions
- Authentication for privately hosted packages and repositories Access privately hosted packages/repositories
- Autoloader optimization How to reduce the performance impact of the autoloader
- Composer platform dependencies Making your package depend on specific Composer versions
- Setting up and using custom installers Modify the way certain types of packages are installed
- Handling private packages Hosting and installing private Composer packages
- Setting up and using plugins Modify and extend Composer's functionality
- Repository priorities Configure which packages are found in which repositories
- Resolving merge conflicts On gracefully resolving conflicts while merging
- Scripts Script are callbacks that are called before/after installing packages
- Troubleshooting Solving problems
- Vendor binaries and the `vendor/bin` directory Expose command-line scripts from packages
- Versions and constraints Versions explained.
- How do I install a package to a custom path for my framework?
- How do I install Composer programmatically?
- How do I install untrusted packages safely? Is it safe to run Composer as superuser or root?
- Should I commit the dependencies in my vendor directory?
- Which version numbering system does Composer itself use?
- Why are unbound version constraints a bad idea?
- Why are version constraints combining comparisons and wildcards a bad idea?
- Why can't Composer load repositories recursively?
If you need to work with composer as a library you may also want to check out the source