0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

表面的なComposerの依存について

Last updated at Posted at 2019-10-23

目次

  • composerとは?
  • 依存について
  • install・updateについて

composerとは?

PHPのパッケージ管理システムである

できること

  • gitやsvn上のPHPライブラリ(パッケージ)を依存として定義&管理(インストールやバージョン確認)
  • クラス・インターフェイスの自動ロード(オートローディング)

今回メインで説明するのは上の方。

依存について

composer使う理由として、パッケージの依存管理が容易になるというのはかなりあると思うのですが、別にcomposer使わなくてもパッケージ依存管理はできるわけで、、、
使用しない場合と使用する場合でどれだけ違うかというと以下。

composerを使用しない場合とする場合

使用しない場合
composerを使用しない場合、必要なパッケージ(PHPライブラリ)をインストールするために、各パッケージが管理されているリポジトリ(gitやsvn)にアクセスし、zipファイル等をローカルにダウンロードし、それらをローカルで展開し、vender/以下に配置する。
仮に、パッケージが他のパッケージに依存している場合、依存しているパッケージに対しても上と同じことを行う。

使用する場合
composerを使用する場合、必要なパッケージ(PHPライブラリ)をインストールするために、composer.jsonに文法通り(公式日本語記事を参考)の書き方でパッケージ名とバージョンを記載するだけで、上記で行ったことを全てcomposer側がよしなにやってくれる。
仮に、パッケージが他のパッケージに依存していた場合でも、composerが自動で依存解決を行い、自動で必要なパッケージを取得し&vernder/以下に配置してくれる。

まとめ
上で見ても分かるように、composerなしでパッケージをインストールしたり、依存解決を行うのは、莫大な時間がかかり、普段の業務レベルで言うと、ほぼ不可能に近いので、基本的にパッケージ管理を行う際は、composerを使うことになる。
では、実際にcomposerを使ってパッケージを管理するためにはどうすればいいのか??
ここで登場するのがinstall・updateコマンド。

install・updateについて

  • installは、パッケージを取得する。
  • updateは、パッケージのバージョン更新する。

簡単に言えばこんな感じ。
さすがに簡単に言い過ぎたので、ちょっとだけ踏み込んでみると、、、

install

まず、composer.lockの存在チェックを行う。

存在する場合
composer.lockに記載されている、全パッケージを指定通りのバージョンで取得する。

存在しない場合
composer.jsonの「require」に記載されているバージョンのパッケージと依存している(そのパッケージが動くために必要な)パッケージがPackagistというcomposerで取得できるパッケージを管理している中央リポジトリに存在するか見に行き、存在すれば取得、存在しなければcomposer.jsonの「repositories」に登録されているリポジトリを見に行き、取得する。
パッケージ取得後、composer.lockを作成し、取得したパッケージと依存パッケージのバージョン情報を記載して保存する。

update

composer.jsonの「require」に記載のパッケージをPackagist若しくはcomposer.jsonの「repositories」記載のリポジトリに見に行き、最新のバージョンが存在すれば、そのパッケージと依存パッケージを最新のバージョンに更新する。
取得パッケージのバージョンに変更があった場合、変更に合わせてcomposer.lock記載のパッケージのバージョンも変更される。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?