You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

178 lines
5.8 KiB
Markdown

# Config
This chapter will describe the `config` section of the `composer.json`
[schema](04-schema.md).
## config <span>([root-only](04-schema.md#root-package))</span>
A set of configuration options. It is only used for projects.
## Properties
### process-timeout
9 years ago
Defaults to `300`. The duration processes like git clones can run before
Composer assumes they died out. You may need to make this higher if you have a
slow connection or huge vendors.
### use-include-path
Defaults to `false`. If `true`, the Composer autoloader will also look for classes
9 years ago
in the PHP include path.
### preferred-install
9 years ago
Defaults to `auto` and can be any of `source`, `dist` or `auto`. This option
allows you to set the install method Composer will prefer to use.
### store-auths
9 years ago
What to do after prompting for authentication, one of: `true` (always store),
`false` (do not store) and `"prompt"` (ask every time), defaults to `"prompt"`.
### github-protocols
9 years ago
Defaults to `["git", "https", "ssh"]`. A list of protocols to use when cloning
from github.com, in priority order. You can reconfigure it to for example
prioritize the https protocol if you are behind a proxy or have somehow bad
performances with the git protocol.
### github-oauth
9 years ago
A list of domain names and oauth keys. For example using `{"github.com":
"oauthtoken"}` as the value of this option will use `oauthtoken` to access
private repositories on github and to circumvent the low IP-based rate limiting
of their API. [Read
more](articles/troubleshooting.md#api-rate-limit-and-oauth-tokens) on how to get
an OAuth token for GitHub.
### http-basic
9 years ago
A list of domain names and username/passwords to authenticate against them. For
example using `{"example.org": {"username": "alice", "password": "foo"}` as the
value of this option will let Composer authenticate against example.org.
### platform
9 years ago
Lets you fake platform packages (PHP and extensions) so that you can emulate a
production env or define your target platform in the config. Example: `{"php":
9 years ago
"5.4", "ext-something": "4.0"}`.
### vendor-dir
9 years ago
Defaults to `vendor`. You can install dependencies into a different directory if
you want to. `$HOME` and `~` will be replaced by your home directory's path in
vendor-dir and all `*-dir` options below.
### bin-dir
9 years ago
Defaults to `vendor/bin`. If a project includes binaries, they will be symlinked
into this directory.
### cache-dir
9 years ago
Defaults to `$COMPOSER_HOME/cache` on unix systems and
`C:\Users\<user>\AppData\Local\Composer` on Windows. Stores all the caches used
by Composer. See also [COMPOSER_HOME](03-cli.md#composer-home).
### cache-files-dir
Defaults to `$cache-dir/files`. Stores the zip archives of packages.
### cache-repo-dir
9 years ago
Defaults to `$cache-dir/repo`. Stores repository metadata for the `composer`
type and the VCS repos of type `svn`, `github` and `bitbucket`.
### cache-vcs-dir
9 years ago
Defaults to `$cache-dir/vcs`. Stores VCS clones for loading VCS repository
metadata for the `git`/`hg` types and to speed up installs.
### cache-files-ttl
9 years ago
Defaults to `15552000` (6 months). Composer caches all dist (zip, tar, ..)
packages that it downloads. Those are purged after six months of being unused by
default. This option allows you to tweak this duration (in seconds) or disable
it completely by setting it to 0.
### cache-files-maxsize
9 years ago
Defaults to `300MiB`. Composer caches all dist (zip, tar, ..) packages that it
downloads. When the garbage collection is periodically ran, this is the maximum
size the cache will be able to use. Older (less used) files will be removed
first until the cache fits.
### prepend-autoloader
Defaults to `true`. If false, the Composer autoloader will not be prepended to
9 years ago
existing autoloaders. This is sometimes required to fix interoperability issues
with other autoloaders.
### autoloader-suffix
9 years ago
Defaults to `null`. String to be used as a suffix for the generated Composer
autoloader. When null a random one will be generated.
### optimize-autoloader
9 years ago
Defaults to `false`. Always optimize when dumping the autoloader.
### classmap-authoritative
Defaults to `false`. If `true`, the Composer autoloader will not scan the
9 years ago
filesystem for classes that are not found in the class map. Implies
'optimize-autoloader'.
### github-domains
9 years ago
Defaults to `["github.com"]`. A list of domains to use in github mode. This is
used for GitHub Enterprise setups.
### github-expose-hostname
Defaults to `true`. If set to `false`, the OAuth tokens created to access the
9 years ago
github API will have a date instead of the machine hostname.
### notify-on-install
9 years ago
Defaults to `true`. Composer allows repositories to define a notification URL,
so that they get notified whenever a package from that repository is installed.
This option allows you to disable that behaviour.
### discard-changes
9 years ago
Defaults to `false` and can be any of `true`, `false` or `"stash"`. This option
allows you to set the default style of handling dirty updates when in
non-interactive mode. `true` will always discard changes in vendors, while
`"stash"` will try to stash and reapply. Use this for CI servers or deploy
scripts if you tend to have modified vendors.
### archive-format
9 years ago
Defaults to `tar`. Composer allows you to add a default archive format when the
workflow needs to create a dedicated archiving format.
### archive-dir
9 years ago
Defaults to `.`. Composer allows you to add a default archive directory when the
workflow needs to create a dedicated archiving format. Or for easier development
between modules.
Example:
```json
{
"config": {
"bin-dir": "bin"
}
}
```
> **Note:** Authentication-related config options like `http-basic` and
> `github-oauth` can also be specified inside a `auth.json` file that goes
> besides your `composer.json`. That way you can gitignore it and every
> developer can place their own credentials in there.
&larr; [Repositories](05-repositories.md) | [Community](07-community.md) &rarr;