1
0
Fork 0
composer/doc/faqs/how-do-i-install-a-package-...

47 lines
1.8 KiB
Markdown
Raw Normal View History

2012-08-20 16:53:47 +00:00
# How do I install a package to a custom path for my framework?
2012-08-20 16:53:47 +00:00
Each framework may have one or many different required package installation
paths. Composer can be configured to install packages to a folder other than
the default `vendor` folder by using
[composer/installers](https://github.com/composer/installers).
2012-07-19 17:40:39 +00:00
If you are a **package author** and want your package installed to a custom
directory, simply require `composer/installers` and set the appropriate `type`.
This is common if your package is intended for a specific framework such as
CakePHP, Drupal or WordPress. Here is an example composer.json file for a
WordPress theme:
2012-07-19 17:44:08 +00:00
{
"name": "you/themename",
"type": "wordpress-theme",
"require": {
"composer/installers": "~1.0"
2012-07-19 17:44:08 +00:00
}
}
Now when your theme is installed with Composer it will be placed into
`wp-content/themes/themename/` folder. Check the
[current supported types](https://github.com/composer/installers#current-supported-types)
for your package.
2012-08-20 16:53:47 +00:00
As a **package consumer** you can set or override the install path for a package
that requires composer/installers by configuring the `installer-paths` extra. A
useful example would be for a Drupal multisite setup where the package should be
installed into your sites subdirectory. Here we are overriding the install path
for a module that uses composer/installers:
2012-07-19 17:44:08 +00:00
{
"extra": {
"installer-paths": {
"sites/example.com/modules/{$name}": ["vendor/package"]
}
}
}
Now the package would be installed to your folder location, rather than the default
composer/installers determined location.
2012-08-20 16:53:47 +00:00
> **Note:** You cannot use this to change the path of any package. This is only
2012-08-21 07:04:41 +00:00
> applicable to packages that require `composer/installers` and use a custom type
> that it handles.