脳みそスワップアウト

揮発性なもので。おもにPHPのこととか。

composerでローカルディスクのgitリポジトリを使う

repositories でディレクトリを指定すればよい。
Bareリポジトリじゃなくて大丈夫。

バージョンは、ブランチ名-dev を指定する。

指定したディレクトリ直下の composer.json の name が、require した名前と合致していればいい。

composer.json

{
  "repositories": [
    { "type": "vcs", "url": "/projects/poppy/testLib" }
  ],
  
  "require": {
    "iamapen/testlib": "1.1.x-dev"
  }
}

ライブラリのプロジェクトを改修していて、もちろんそこでUTはするのだけども、
その修正をすぐに使いたい利用側プロジェクトも手元にあるとする。
それなら、利用側プロジェクトでのテストも済んでからpushしたい、そんな時にこれを使っている。

流れ的にはこう。

  1. ライブラリプロジェクトを修正、テスト、コミット。pushはしない。
  2. 利用側プロジェクトで
    1. composer.json を一時的に編集、対象ライブラリのリポジトリをローカルディスクにする
    2. composer update "ライブラリ" -vvv
    3. テスト
    4. 気が済むまで両方のプロジェクトの修正を繰り返す
  3. ライブラリプロジェクトにタグ打ち、push。packagistにも上げる。
  4. 利用側プロジェクトで
    1. composer.json を元に戻す。リポジトリとバージョン。
    2. composer update "ライブラリ" -vvv
    3. テスト。修正済み正式版ライブラリ。
    4. コミット
    5. 必要に応じてpush