git subtree 便利です
本当に便利なのですが、subtreeからcomposerへの移行が面倒です。
subtree向けにディレクトリ分割したタイミングからcomposer対応しておきたいものです。
要は無駄にautoload追加しまくるのは何か嫌だって事です。
composer にはローカルディレクトリをリポジトリパスとして登録する機能があるのでその辺を使えばうまいこと行けそうです。
composer.json をいじる
composer.jsonに以下の記述を追加します。
"repositories":[
{
"type":"path", "url" : "./subtree/mylib"
},
],
ここで、subtree/mylib/composer.json
を配置して適切なname
,autoload
を設定すると、subtree/mylib
がComposer ライブラリのリポジトリとして認識される様になります。
$ composer require acme/mylib:dev-master
バージョンに関してはgitのサブディレクトリでパスもブランチも無いので、常にdev-masterが有効です。
require するとvendorディレクトリ以下にシンボリックリンクが貼られます。
phpstorm などではシンボリックリンクが自動で更新サれないので、find usage とかのインデックスは若干ラグります。
定期的に読み込みを手動で入れてあげるといい感じです。
親プロジェクトにautoload入れまくって対応するより、移行面ではいささかマシだと思います。