0
0

composer requireとcomposer global requireの違い

Last updated at Posted at 2023-11-05

composer requireとcomposer global requireはどちらもcomposerを使いPHPパッケージをインストールするコマンドだが、以下の違いがある。

composer require <パッケージ名>

あるWEBアプリのプロジェクトを作成する場合など、なんらかのプロジェクト単位でパッケージを管理したい場合に使用するコマンド。

例えばあるWEBアプリのプロジェクト専用のパッケージを管理したい場合を考える。

プロジェクトの最上位のディレクトリでパッケージを管理したいとして、その最上位のディレクトリへ移動し、composer require <パッケージ名>を実行する。

コマンド実行したカレントディレクトリにvendorディレクトリが作成され、その中にパッケージが格納される。

このvendorディレクトリでプロジェクト専用のパッケージを管理する。

composer global require <パッケージ名>

プロジェクト単位で管理したいパッケージでなく、どのディレクトリからでも使用するパッケージを管理したいなど、つまりシステム単位で使用するパッケージを管理したい場合に使用するコマンド。

例えば、composer global require "laravel/installer"というlaravelプロジェクトを作成するためのインストーラーを追加するコマンドがある。

laravel/installerというパッケージはプロジェクト単位で管理するようなパッケージではないためglobalでパッケージ追加することが一般的。

globalでパッケージを追加した場合、どのディレクトリにパッケージが追加されるかというと、OSにより異なる。

macOS: $HOME/.composer/vendor/bin

Windows: %USERPROFILE%\AppData\Roaming\Composer\vendor\bin

GNU/Linuxディストリビューション:
\$HOME/.config/composer/vendor/binもしくは、$HOME/.composer/vendor/bin

またコマンドでも確認できる。

composer global config home

0
0
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
0
0