Edited at

Composerで CakePHPのプラグインをインストールする際に、インストール先フォルダを指定する

More than 3 years have passed since last update.

Composer で、CakePHP とそのプラグインをインストールするとき。

{

"require": {
"cakephp/cakephp": "~2.5",
"cakephp/debug_kit": "2.*"
}
}

composer.json に上記のように書いて composer install すると、フォルダ構成がこんな感じになる。

- vendor

- cakephp
- cakephp
- Plugin
- DebugKit

デフォルトでは CakePHP のプラグインがルートの Plugin というフォルダに入るのだけど、このフォルダを任意で指定したい場合、どんな書き方をすればいいか調べた。


Composerのサイトの FAQ にそれっぽい記述があり、


How do I install a package to a custom path for my framework?


extra.installer-paths の部分に書くことで、typeごとにプラグインのインストール先フォルダを指定できる。

たとえば composer.json にこう書いて、

{

"require": {
"cakephp/cakephp": "~2.5",
"cakephp/debug_kit": "2.*"
},
"extra": {
"installer-paths": {
"cakeapp/Plugin/{$name}": ["type:cakephp-plugin"]
}
}
}

type:cakephp-plugin のものは cakeapp/Plugin/プラグイン名 というフォルダに保存されるように設定。

上記を composer install すると、こんな構成になる。

- vendor

- cakephp
- cakephp
- cakeapp
- Plugin
- DebugKit

というかんじです。