2012-02-19 14:16:25 +00:00
|
|
|
# Command-line interface
|
|
|
|
|
2012-02-20 10:08:18 +00:00
|
|
|
You've already learned how to use the command-line interface to do some
|
|
|
|
things. This chapter documents all the available commands.
|
2012-02-19 14:16:25 +00:00
|
|
|
|
|
|
|
## init
|
|
|
|
|
2012-03-07 23:18:03 +00:00
|
|
|
In the [Libraries](02-libraries.md) chapter we looked at how to create a `composer.json` by
|
2012-02-20 10:08:18 +00:00
|
|
|
hand. There is also an `init` command available that makes it a bit easier to
|
|
|
|
do this.
|
2012-02-19 14:16:25 +00:00
|
|
|
|
2012-02-20 10:08:18 +00:00
|
|
|
When you run the command it will interactively ask you to fill in the fields,
|
|
|
|
while using some smart defaults.
|
2012-02-19 14:16:25 +00:00
|
|
|
|
|
|
|
$ php composer.phar init
|
|
|
|
|
|
|
|
## install
|
|
|
|
|
2012-02-20 10:08:18 +00:00
|
|
|
The `install` command reads the `composer.json` file from the current
|
|
|
|
directory, resolves the dependencies, and installs them into `vendor`.
|
2012-02-19 14:16:25 +00:00
|
|
|
|
|
|
|
$ php composer.phar install
|
|
|
|
|
2012-02-20 10:08:18 +00:00
|
|
|
If there is a `composer.lock` file in the current directory, it will use the
|
|
|
|
exact versions from there instead of resolving them. This ensures that
|
|
|
|
everyone using the library will get the same versions of the dependencies.
|
2012-02-19 14:16:25 +00:00
|
|
|
|
2012-02-20 10:08:18 +00:00
|
|
|
If there is no `composer.lock` file, composer will create one after dependency
|
|
|
|
resolution.
|
2012-02-19 14:16:25 +00:00
|
|
|
|
|
|
|
### Options
|
|
|
|
|
2012-02-26 11:40:35 +00:00
|
|
|
* **--prefer-source:** There are two ways of downloading a package: `source`
|
|
|
|
and `dist`. For stable versions composer will use the `dist` by default.
|
|
|
|
The `source` is a version control repository. If `--prefer-source` is
|
|
|
|
enabled, composer will install from `source` if there is one. This is
|
|
|
|
useful if you want to make a bugfix to a project and get a local git
|
|
|
|
clone of the dependency directly.
|
|
|
|
* **--dry-run:** If you want to run through an installation without actually
|
|
|
|
installing a package, you can use `--dry-run`. This will simulate the
|
|
|
|
installation and show you what would happen.
|
2012-04-14 21:52:52 +00:00
|
|
|
* **--dev:** By default composer will only install required packages. By
|
|
|
|
passing this option you can also make it install packages referenced by
|
|
|
|
`require-dev`.
|
2012-02-19 14:16:25 +00:00
|
|
|
|
|
|
|
## update
|
|
|
|
|
2012-02-20 10:08:18 +00:00
|
|
|
In order to get the latest versions of the dependencies and to update the
|
|
|
|
`composer.lock` file, you should use the `update` command.
|
2012-02-19 14:16:25 +00:00
|
|
|
|
|
|
|
$ php composer.phar update
|
|
|
|
|
2012-02-20 10:08:18 +00:00
|
|
|
This will resolve all dependencies of the project and write the exact versions
|
|
|
|
into `composer.lock`.
|
2012-02-19 14:16:25 +00:00
|
|
|
|
2012-05-26 13:27:35 +00:00
|
|
|
If you just want to update a few packages and not all, you can list them as such:
|
|
|
|
|
|
|
|
$ php composer.phar update vendor/package vendor/package2
|
|
|
|
|
2012-02-19 14:16:25 +00:00
|
|
|
### Options
|
|
|
|
|
|
|
|
* **--prefer-source:** Install packages from `source` when available.
|
|
|
|
* **--dry-run:** Simulate the command without actually doing anything.
|
2012-04-14 21:52:52 +00:00
|
|
|
* **--dev:** Install packages listed in `require-dev`.
|
2012-02-19 14:16:25 +00:00
|
|
|
|
2012-03-31 22:39:43 +00:00
|
|
|
## require
|
|
|
|
|
2012-05-26 13:27:35 +00:00
|
|
|
The `require` command adds new packages to the `composer.json` file from
|
|
|
|
the current directory.
|
2012-03-31 22:39:43 +00:00
|
|
|
|
|
|
|
$ php composer.phar require
|
|
|
|
|
2012-05-26 13:27:35 +00:00
|
|
|
After adding/changing the requirements, the modified requirements will be
|
|
|
|
installed or updated.
|
|
|
|
|
|
|
|
If you do not want to choose requirements interactively, you can just pass them
|
|
|
|
to the command.
|
|
|
|
|
|
|
|
$ php composer.phar require vendor/package:2.* vendor/package2:dev-master
|
2012-03-31 22:39:43 +00:00
|
|
|
|
2012-05-26 13:27:35 +00:00
|
|
|
### Options
|
|
|
|
|
|
|
|
* **--prefer-source:** Install packages from `source` when available.
|
|
|
|
* **--dev:** Add packages to `require-dev`.
|
2012-03-31 22:39:43 +00:00
|
|
|
|
2012-02-19 14:16:25 +00:00
|
|
|
## search
|
|
|
|
|
2012-02-20 10:08:18 +00:00
|
|
|
The search command allows you to search through the current project's package
|
|
|
|
repositories. Usually this will be just packagist. You simply pass it the
|
|
|
|
terms you want to search for.
|
2012-02-19 14:16:25 +00:00
|
|
|
|
|
|
|
$ php composer.phar search monolog
|
|
|
|
|
|
|
|
You can also search for more than one term by passing multiple arguments.
|
|
|
|
|
|
|
|
## show
|
|
|
|
|
|
|
|
To list all of the available packages, you can use the `show` command.
|
|
|
|
|
|
|
|
$ php composer.phar show
|
|
|
|
|
2012-02-20 10:08:18 +00:00
|
|
|
If you want to see the details of a certain package, you can pass the package
|
|
|
|
name.
|
2012-02-19 14:16:25 +00:00
|
|
|
|
|
|
|
$ php composer.phar show monolog/monolog
|
|
|
|
|
|
|
|
name : monolog/monolog
|
|
|
|
versions : master-dev, 1.0.2, 1.0.1, 1.0.0, 1.0.0-RC1
|
|
|
|
type : library
|
|
|
|
names : monolog/monolog
|
|
|
|
source : [git] http://github.com/Seldaek/monolog.git 3d4e60d0cbc4b888fe5ad223d77964428b1978da
|
|
|
|
dist : [zip] http://github.com/Seldaek/monolog/zipball/3d4e60d0cbc4b888fe5ad223d77964428b1978da 3d4e60d0cbc4b888fe5ad223d77964428b1978da
|
|
|
|
license : MIT
|
|
|
|
|
|
|
|
autoload
|
|
|
|
psr-0
|
|
|
|
Monolog : src/
|
|
|
|
|
|
|
|
requires
|
|
|
|
php >=5.3.0
|
|
|
|
|
2012-02-20 10:08:18 +00:00
|
|
|
You can even pass the package version, which will tell you the details of that
|
|
|
|
specific version.
|
2012-02-19 14:16:25 +00:00
|
|
|
|
|
|
|
$ php composer.phar show monolog/monolog 1.0.2
|
|
|
|
|
|
|
|
### Options
|
|
|
|
|
|
|
|
* **--installed:** Will list the packages that are installed.
|
2012-03-07 23:18:03 +00:00
|
|
|
* **--platform:** Will list only platform packages (php & extensions).
|
2012-02-19 14:16:25 +00:00
|
|
|
|
|
|
|
## depends
|
|
|
|
|
2012-02-20 10:08:18 +00:00
|
|
|
The `depends` command tells you which other packages depend on a certain
|
2012-04-14 21:52:52 +00:00
|
|
|
package. You can specify which link types (`require`, `require-dev`)
|
|
|
|
should be included in the listing. By default both are used.
|
2012-02-19 14:16:25 +00:00
|
|
|
|
|
|
|
$ php composer.phar depends --link-type=require monolog/monolog
|
|
|
|
|
|
|
|
nrk/monolog-fluent
|
|
|
|
poc/poc
|
|
|
|
propel/propel
|
|
|
|
symfony/monolog-bridge
|
|
|
|
symfony/symfony
|
|
|
|
|
|
|
|
### Options
|
|
|
|
|
2012-02-20 10:08:18 +00:00
|
|
|
* **--link-type:** The link types to match on, can be specified multiple
|
2012-02-26 11:40:35 +00:00
|
|
|
times.
|
2012-02-19 14:16:25 +00:00
|
|
|
|
|
|
|
## validate
|
|
|
|
|
2012-02-20 10:08:18 +00:00
|
|
|
You should always run the `validate` command before you commit your
|
|
|
|
`composer.json` file, and before you tag a release. It will check if your
|
|
|
|
`composer.json` is valid.
|
2012-02-19 14:16:25 +00:00
|
|
|
|
|
|
|
$ php composer.phar validate
|
|
|
|
|
|
|
|
## self-update
|
|
|
|
|
2012-02-20 10:08:18 +00:00
|
|
|
To update composer itself to the latest version, just run the `self-update`
|
|
|
|
command. It will replace your `composer.phar` with the latest version.
|
2012-02-19 14:16:25 +00:00
|
|
|
|
|
|
|
$ php composer.phar self-update
|
|
|
|
|
2012-04-13 10:36:27 +00:00
|
|
|
## create-project
|
|
|
|
|
|
|
|
You can use Composer to create new projects from an existing package.
|
|
|
|
There are several applications for this:
|
|
|
|
|
|
|
|
1. You can deploy application packages.
|
|
|
|
2. You can check out any package and start developing on patches for example.
|
|
|
|
3. Projects with multiple developers can use this feature to bootstrap the
|
|
|
|
initial application for development.
|
|
|
|
|
|
|
|
To create a new project using composer you can use the "create-project" command.
|
|
|
|
Pass it a package name, and the directory to create the project in. You can also
|
|
|
|
provide a version as third argument, otherwise the latest version is used.
|
|
|
|
|
|
|
|
The directory is not allowed to exist, it will be created during installation.
|
|
|
|
|
|
|
|
php composer.phar create-project doctrine/orm path 2.2.0
|
|
|
|
|
|
|
|
By default the command checks for the packages on packagist.org.
|
|
|
|
|
|
|
|
### Options
|
|
|
|
|
|
|
|
* **--repository-url:** Provide a custom repository to search for the package,
|
|
|
|
which will be used instead of packagist. Can be either an HTTP URL pointing
|
|
|
|
to a `composer` repository, or a path to a local `packages.json` file.
|
|
|
|
* **--prefer-source:** Get a development version of the code checked out
|
|
|
|
from version control.
|
|
|
|
|
2012-02-19 14:16:25 +00:00
|
|
|
## help
|
|
|
|
|
|
|
|
To get more information about a certain command, just use `help`.
|
|
|
|
|
|
|
|
$ php composer.phar help install
|
2012-02-26 11:40:35 +00:00
|
|
|
|
|
|
|
## Environment variables
|
|
|
|
|
|
|
|
You can set a number of environment variables that override certain settings.
|
|
|
|
Whenever possible it is recommended to specify these settings in the `config`
|
|
|
|
section of `composer.json` instead. It is worth noting that that the env vars
|
|
|
|
will always take precedence over the values specified in `composer.json`.
|
|
|
|
|
|
|
|
### COMPOSER
|
|
|
|
|
2012-03-17 14:02:39 +00:00
|
|
|
By setting the `COMPOSER` env variable it is possible to set the filename of
|
2012-02-26 11:40:35 +00:00
|
|
|
`composer.json` to something else.
|
|
|
|
|
|
|
|
For example:
|
|
|
|
|
|
|
|
$ COMPOSER=composer-other.json php composer.phar install
|
|
|
|
|
2012-05-24 18:36:47 +00:00
|
|
|
### COMPOSER_ROOT_VERSION
|
|
|
|
|
|
|
|
By setting this var you can specify the version of the root package, if it can
|
|
|
|
not be guessed from VCS info and is not present in `composer.json`.
|
|
|
|
|
2012-02-26 11:40:35 +00:00
|
|
|
### COMPOSER_VENDOR_DIR
|
|
|
|
|
2012-03-06 23:03:35 +00:00
|
|
|
By setting this var you can make composer install the dependencies into a
|
2012-02-26 11:40:35 +00:00
|
|
|
directory other than `vendor`.
|
|
|
|
|
|
|
|
### COMPOSER_BIN_DIR
|
|
|
|
|
2012-03-07 23:18:03 +00:00
|
|
|
By setting this option you can change the `bin` ([Vendor Bins](articles/vendor-bins.md))
|
2012-02-26 11:40:35 +00:00
|
|
|
directory to something other than `vendor/bin`.
|
|
|
|
|
2012-03-20 13:03:01 +00:00
|
|
|
### http_proxy or HTTP_PROXY
|
2012-03-06 23:03:35 +00:00
|
|
|
|
|
|
|
If you are using composer from behind an HTTP proxy, you can use the standard
|
2012-03-20 13:03:01 +00:00
|
|
|
`http_proxy` or `HTTP_PROXY` env vars. Simply set it to the URL of your proxy.
|
2012-03-06 23:03:35 +00:00
|
|
|
Many operating systems already set this variable for you.
|
2012-03-07 16:35:53 +00:00
|
|
|
|
2012-03-20 13:03:01 +00:00
|
|
|
Using `http_proxy` (lowercased) or even defining both might be preferrable since
|
|
|
|
some tools like git or curl will only use the lower-cased `http_proxy` version.
|
|
|
|
Alternatively you can also define the git proxy using
|
|
|
|
`git config --global http.proxy <proxy url>`.
|
|
|
|
|
2012-04-26 15:24:31 +00:00
|
|
|
### COMPOSER_HOME
|
|
|
|
|
|
|
|
The `COMPOSER_HOME` var allows you to change the composer home directory. This
|
2012-04-26 16:54:45 +00:00
|
|
|
is a hidden, global (per-user on the machine) directory that is shared between
|
|
|
|
all projects.
|
2012-04-26 15:24:31 +00:00
|
|
|
|
2012-04-26 16:54:45 +00:00
|
|
|
By default it points to `/home/<user>/.composer` on *nix,
|
|
|
|
`/Users/<user>/.composer` on OSX and
|
|
|
|
`C:\Users\<user>\AppData\Roaming\Composer` on Windows.
|
2012-04-26 15:24:31 +00:00
|
|
|
|
|
|
|
### COMPOSER_PROCESS_TIMEOUT
|
|
|
|
|
|
|
|
This env var controls the time composer waits for commands (such as git
|
2012-04-26 16:59:09 +00:00
|
|
|
commands) to finish executing. The default value is 300 seconds (5 minutes).
|
2012-04-26 15:24:31 +00:00
|
|
|
|
2012-04-13 12:35:13 +00:00
|
|
|
← [Libraries](02-libraries.md) | [Schema](04-schema.md) →
|