LoginSignup
3
3

More than 5 years have passed since last update.

Composerがbinに対して作成するスタブの種類

Last updated at Posted at 2015-08-30

composer.jsonにbinが指定されているパッケージをインストールする時、composerはスタブとなるバッチファイルやシェルスクリプトをvendor/binに作成する。

この処理はプラットフォームによって異なっていて、具体的な処理はComposer\Installer\LibraryInstallerinstallBinariesに見ることができる。

  1. Windowsの場合はバッチファイルとシェルスクリプトを作成する。シェルスクリプトはCygwinなどのために作成する。
  2. Unixの場合は、まずスタブを作成せずに単にシンボリックリンクを作成する。
  3. しかし、ファイルシステムによってはシンボリックリンクが使えない場合がある(smbfsや、VirtualBoxの共有フォルダなど)。このため、シンボリックリンクの作成に失敗した場合はシェルスクリプトを作成する。

例えばphpunitをインストールした場合は、

  1. の場合、バッチファイルvendor/bin/phpunit.batとシェルスクリプトvendor/bin/phpunitが作成される
  2. の場合、vendor/phpunit/phpunit/phpunitのシンボリックリンクがvendor/bin/phpunitに作成される
  3. の場合、シェルスクリプトvendor/bin/phpunitが作成される

追記
bin-compat:(auto|nosymlink|full)という設定が追加されたようだ。後で調べる。
https://github.com/composer/composer/pull/3704

関連

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3