PHPのパッケージ依存管理ツール「Composer」の概要・使い方

composerの概要・使い方

PHPでWEBアプリケーションを作る際に、ライブラリ(パッケージ)管理ツールとしてよく利用されるComposerについてまとめました。

Composerについて知らない人でも、概要を理解して実際に使ってみることができるように詳しく解説しています。

この記事でわかること

  • Composerとは何か
  • Composerのインストール方法
  • Composerの使い方
目次

ComposerとはPHPのパッケージ依存管理ツール

Composerロゴ

ComposerとはPHPでWEBアプリケーションを作る際に利用されるライブラリ(パッケージ)を管理できるツールで、各ライブラリの依存環境も考慮してくれるスグレモノです。

実際にアプリケーションを作る際に、全て自力でプログラムを組むことはあまりありませんよね。
外部で作成されたライブラリを利用することが多いはず。

例えば、とあるライブラリAを利用しようとしたとき、ライブラリA自身が他のライブラリBをベースにしていることもあります。
(これをライブラリAはライブラリBに「依存している」という言い方をします)

Aを使うために一つずつ必要なライブラリをインストールしていくのはかなり大変です。
ただし、Composerを使えばAのインストール時に依存関係にあるライブラリもまとめてインストールしてくれるので開発時のコスト軽減に繋がります。

Composerのインストール方法

OSによってインストール方法が変わります。
下記記事にまとめたので、ご自身の状況に応じてインストールしてください。

macOSの場合

windowsの場合

Composerの利用方法

具体的なComposerの使い方は以下の通りです。

  1. composer.jsonファイルを作成
  2. 使いたいライブラリを記述
  3. composer経由で必要なものをインストール

詳しくまとめていきます。

composer.jsonファイルを作成

まず、プロジェクトの最上位ディレクトリ(ルートディレクトリ)にcomposer.jsonというファイルを用意します。

project
  L composer.json
  L index.php など

composer.jsonはComposerの各種設定ファイルとして機能します。

使いたいライブラリを記述

composer.jsonファイル内に使いたいパッケージを記載します。

{
    "require": {
        "パッケージ": "バージョン"
    }
}

たとえば、PHPで環境変数(.env)を扱うためのphpdotenvというパッケージを使いたい場合は以下のようになります。

{
  "require": {
    "vlucas/phpdotenv": "^5.4.1"
  }
}

パッケージの部分は「ベンダー名/パッケージ名」にします。

バージョンの記載方法は複数あります。

バージョン指定方法意味
5.4.1バージョンは5.4.1で固定
~5.45.4以上、6.0.0未満を採用
~5.4.15.4.1以上、5.5.0未満を採用
^5.4.15.4.1以上、6.0.0未満を採用
^0.3.20.3.2以上、0.4未満

phpdotenvの例では、後方互換性が維持されるのであれば新機能の追加をしてもよいと判断したので、下記のようにマイナーバージョンの追加を認める書き方をしました。

"vlucas/phpdotenv": "^5.4.1"

もちろん、下記のように複数のインストールを指示することも可能です。

{
  "require": {
    "vlucas/phpdotenv": "^5.4.1",
    "monolog/monolog": "^1.23.0"
  }
}

Composer経由で必要なものをインストール

composer.jsonが用意できたら、Composerにてライブラリ(パッケージ)のインストールを行います。

ターミナルでcomposer.jsonがあるディレクトリに移動した上で、

$ composer install

composer.lockファイルとvendorディレクトリが作成されます。

project
  L vendor
  L composer.json
  L composer.lock
  L index.php など

composer.lockには、composer.jsonの指定に従った結果インストールしたものの一覧が表示されています。

{
    "_readme": [
        "This file locks the dependencies of your project to a known state",
        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
        "This file is @generated automatically"
    ],
    "content-hash": "1e113179d10405f0f924a0e2c221ea9e",
    "packages": [
        {
            "name": "graham-campbell/result-type",
            "version": "v1.0.4",
            "source": {
                "type": "git",
                "url": "https://github.com/GrahamCampbell/Result-Type.git",
                "reference": "0690bde05318336c7221785f2a932467f98b64ca"
            },
...省略...

このファイルはcomposerが適宜書き換えていくので、自分で変更することはありません

実際にインストールされたパッケージはvendorディレクトリ内に収められています。

なお、composer.jsonにて許可された範囲のバージョンで最新版にしたいときは下記コマンドを実行してください。

$ composer update

composer.lockのバージョン情報が書き換えられ、vendor内に最新のものがインストールされます。

プロジェクトをgitで管理するときは、composer.jsoncomposer.lockを記録させ、vendorディレクトリ以下は.gitignoreに登録しておくのが一般的です。

Composer経由でインストールしたパッケージの使い方

ここまででインストールが完了したので、実際にプロジェク内でどのようにパッケージを使うのかをまとめます。

vendorディレクトリを見てみると、autoload.phpというファイルがあるはずです。

project
  L vendor
     L composer
     L vlucasなど各パッケージ
     L autoload.php
  L composer.json
  L composer.lock
  L index.php など

autoload.phpにはパッケージを使う際に必要なクラスファイルを自動で読み込むためのプログラムが記述されています。

まずプロジェクトの最初(index.phpなど)でautoload.phpを読み込んでください。

<?php
require __DIR__ . '/vendor/autoload.php';

その上で、必要なタイミングでパッケージを利用すればOK。

例えば、phpdotenvというパッケージは以下のように利用できます。

<?php
require __DIR__ . '/vendor/autoload.php';
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();

※phpdotenvの詳しい使い方は以下の記事でまとめています。

まとめ

ComposerとはPHPプロジェクトをスムーズに開発するために使われるパッケージ依存管理ツールです。
ルートディレクトリに配置したcomposer.jsonに使いたいパッケージを宣言してインストールするだけで使えるようになります。

またこの記事ではご紹介できませんでしたが、自作したクラスの自動読み込み(オートローダー)としてもComposerを利用することができます。

Composerは便利でよく使われるツールなので、ぜひ自分でも試してみてください。

composerの概要・使い方

この記事が気に入ったら
いいね または フォローしてね!

SHARE
  • URLをコピーしました!

コメント

コメントする

目次