CakePHP本体をzipやtarから導入したあとにComposerで色々なライブラリを入れたい場合があるかと思います。
app/Vendor配下に色々とzipからライブラリを入れた後に、Composerを後追いで入れたい場合もあるかと思います。
CakePHPをComposerから導入する記事は多いのですが、このケースの記事はあまり見かけませんでした。。
ということで、zipから導入したCakePHPに対してComposerをセットアップする方法をまとめました。
概要としては、以下を満たせればよさそうでした。
- CakePHPではvendorではなくVendor(先頭大文字)なのでディレクトリ名を明示
- Vendor/autoload.phpをConfig/bootstrap.phpで読み込む
appディレクトリ直下に以下のcomposer.jsonを配置します。
app/composer.json
{
"config": {
"vendor-dir": "Vendor"
}
}
appディレクトリ直下で、composerを実行します。
$ composer require {library}
や、composer.jsonに記述したうえで
$ composer install
app/Vendor/autoload.phpが生成されるので、app/Config/bootstrap.phpで読み込みます。
app/Config/bootstrap.php
App::import('Vendor', 'autoload');
この状態で、ModelやControllerからComposerで導入したライブラリを呼び出せるようになりました。
ComposerからCakePHPを導入した場合は、appディレクトリより上にcomposer.jsonがあると思いますので、それをそのまま使うほうが良いかと思います。