🎼

LaravelにおけるComposerというパッケージ管理ツールについて

2022/03/12に公開

Composer とは

PHP の依存関係を管理するツールです。Node.js の npm や Ruby の bundler にインスパイアされたそうです。
公式サイトに指揮者のような画像がある理由は、"composer"は日本語で"作曲"という意味だからだと推測します。
2022 年 3 月 12 日時点で最新バージョンは Composer 2.2 LTS であり、PHP の versions 5.3.2 - 8.1 がサポートされています。

Composer is not a package manager in the same sense as Yum or Apt are.

と書かれている通り、公式サイトでパッケージマネージャではないと明言されています。

composer.json に下記のように追加したパッケージが記載されます。

composer.json
// https://getcomposer.org/doc/articles/custom-installers.md#composer-jsonより引用
{
    "name": "phpdocumentor/template-installer-plugin",
    "type": "composer-plugin",
    "license": "MIT",
    "autoload": {
        "psr-0": {"phpDocumentor\\Composer": "src/"}
    },
    "extra": {
        "class": "phpDocumentor\\Composer\\TemplateInstallerPlugin"
    },
    "require": {
        "composer-plugin-api": "^1.0"
    },
    "require-dev": {
        "composer/composer": "^1.3"
    }
}

依存関係の解決

インストール

php composer.phar install

をすると カレントディレクトリにある composer.json をもとに依存関係を解決し、vendor ディレクトリにインストールします。composer.lock がない場合は作成されます。

php composer.phar update

をすると依存関係に基づいた最新のバージョンを取得します。
Git で commit するとどのバージョンのどのライブラリを使っているか共有できます。

特定のパッケージをアップデートする場合は下記のように指定できます。

php composer.phar update vendor/package vendor/package2

アンインストール

composer.json からアンインストールするには remove を使います。

php composer.phar remove vendor/package vendor/package2

参考

公式ドキュメント
GitHub

GitHubで編集を提案

Discussion