9
7

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 3 years have passed since last update.

[PHP]パッケージ管理ツールComposerを図で理解する

Posted at

概要

PHPのパッケージ管理ツールComposerについて図を用いてまとめました。
Composerは既にインストールしている前提で説明します。

Composerとは?

PHPのパッケージ管理ツールです。

パッケージ管理ツールとは?

プロジェクトが必要とするライブラリやパッケージを、依存関係を考慮した上で管理してくれるツールです。

依存関係とは?

ライブラリやパッケージには依存関係があります。
例えば以下のようなものです。
(1) ライブラリAを使いたい場合、ライブラリBとライブラリCが必要である
(2) ライブラリAのバージョンが2の場合、ライブラリBのバージョンは3が必要である

この例でいくと、Composerは

(1) ライブラリAを指定してインストールすると、自動でライブラリBやライブラリCもインストールしてくれる
composer_ex1.png

(2) ライブラリAをバージョン2へアップデートすると、自動でライブラリBのバージョンを3へアップデートしてくれる
composer_ex2.png
ということをしてくれます。

ライブラリの指定

プロジェクトに追加したいライブラリを指定するためのファイルがcomposer.jsonです。
composer.jsonには、プロジェクトに必要なライブラリのリストとバージョンを記載します。
Laravelの例

このファイルは直接作成&編集するか、以下のようなコマンドで操作することができます。

$ composer init # composer.jsonを作成
$ composer require パッケージ名 # composer.jsonにパッケージを追加

ライブラリの読み込み

ライブラリをインストールするためには以下のコマンドを打ちます。

$ composer install

実行すると、以下のことが起きます。

  • composer.lockが生成される
  • ライブラリのソース本体がvendorディレクトリにインストールされる

composer_ex3.png

ただし、プロジェクトに既にcomposer.lockが存在している場合はそちらの情報で優先的にインストールされます。
(チームで開発する場合や、Laravelなどのフレームワークで環境構築した場合など)

composer_ex4.png

composer.lockの有無にかかわらず、composer.jsonから再度依存関係を解決してインストールを行いたい場合は以下のコマンドを打ちます。

$ composer update

composer_ex5.png

composer.lock

composer.lockには実際にライブラリのどのバージョンがインストールされたかが具体的に記載されます。
チームで開発する場合はこれを利用することによって、開発環境のライブラリによる差分をなくすことができます。
スクリーンショット 2020-07-07 23.19.49.png

vendor

インストールされたパッケージのソース本体が格納されます。
スクリーンショット 2020-07-07 23.21.14.png

参考

Composerの導入&使い方(初心者の復習用) - Qiita
composer.json、composer.lockって何なの?という人向けのまとめ - Qiita
Composer は何者か。あるいは install と update の違い。そしてオートロードの仕組み。 | ごみばこいん Blog

最後に

Composerおじさんは賢い。ありがとうおじさん。
そのうち余裕があったらJavaScriptのパッケージ管理ツールnpmについてもまとめようと思います。
記事に間違いや不明な点なあればご指摘お願いします。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?