あっぽログ
← 記事一覧に戻る

PHPのComposer完全入門:インストールから自作パッケージ管理まで

Composerとは何か?

PHPでアプリケーションを開発していると、「他の人が作った便利なライブラリを使いたい」という場面が必ず出てきます。そのときに活躍するのが Composer(コンポーザー)です。

ComposerはPHPの依存関係管理ツールで、Node.jsでいうnpm、RustでいうCargoに相当します。必要なライブラリを一元管理し、バージョンの競合を防いでくれる、現代のPHP開発には欠かせないツールです。


Composerのインストール

macOS / Linux

ターミナルで以下のコマンドを実行します。

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

インストールが完了したら、バージョンを確認しましょう。

composer --version
# Composer version 2.x.x ...

Windows

Composer公式サイトからインストーラー(Composer-Setup.exe)をダウンロードして実行するのが最も簡単です。


プロジェクトの初期化

新しいPHPプロジェクトを始めるときは、まず composer init を実行します。

mkdir my-php-app
cd my-php-app
composer init

対話形式でプロジェクト名や説明を入力すると、composer.json ファイルが生成されます。

{
    "name": "yourname/my-php-app",
    "description": "A sample PHP application",
    "require": {}
}

この composer.json がプロジェクトの依存関係を管理する設定ファイルです。


パッケージのインストール

require でパッケージを追加する

たとえば、人気のHTTPクライアントライブラリ guzzlehttp/guzzle をインストールしてみましょう。

composer require guzzlehttp/guzzle

コマンドを実行すると、composer.json が更新され、vendor/ ディレクトリにパッケージがダウンロードされます。

{
    "require": {
        "guzzlehttp/guzzle": "^7.0"
    }
}

また、composer.lock というファイルも生成されます。これはインストールされた正確なバージョンを記録するファイルで、チーム開発で全員が同じ環境を再現するために重要です。

開発用パッケージの追加

テストツールなど、本番環境では不要なパッケージは --dev オプションを付けます。

composer require --dev phpunit/phpunit

composer.json では require-dev セクションに追記されます。


オートロードを活用する

Composerの強力な機能のひとつがPSR-4オートロードです。require 文をいちいち書かなくても、クラスを自動で読み込んでくれます。

composer.json にオートロードを設定する

{
    "require": {},
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    }
}

設定を反映するには、以下のコマンドを実行します。

composer dump-autoload

クラスを作成して使ってみる

src/Greeting.php を作成します。

<?php

namespace App;

class Greeting
{
    public function hello(string $name): string
    {
        return "こんにちは、{$name}さん!";
    }
}

index.php からオートロードを使ってクラスを呼び出します。

<?php

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

use App\Greeting;

$greeting = new Greeting();
echo $greeting->hello('田中'); // こんにちは、田中さん!

vendor/autoload.php を一度読み込むだけで、src/ 以下のすべてのクラスが自動的に利用可能になります。


バージョン指定の書き方

composer.json のバージョン指定にはいくつかの記法があります。

記法意味
^7.07.0以上8.0未満(後方互換を保った最新版)
~7.27.2以上7.x未満(マイナーバージョン固定)
7.0.17.0.1 完全固定
*任意のバージョン(非推奨)

通常は ^(キャレット)を使うのがベストプラクティスです。


よく使うComposerコマンド一覧

# パッケージのインストール(composer.lockに基づく)
composer install

# パッケージのアップデート
composer update

# 特定パッケージのみアップデート
composer update guzzlehttp/guzzle

# パッケージの削除
composer remove guzzlehttp/guzzle

# インストール済みパッケージの一覧表示
composer show

# オートロードファイルの再生成
composer dump-autoload

# セキュリティ脆弱性チェック
composer audit

まとめ

Composerを使いこなすことで、PHP開発の生産性は大きく向上します。

  • composer.json で依存関係を宣言する
  • composer.lock で環境を再現可能にする
  • PSR-4オートロードでクラスの管理を自動化する

LaravelやSymfonyなどのモダンなPHPフレームワークもComposerを前提に設計されています。ぜひ基本をしっかり押さえて、快適なPHP開発ライフを送りましょう!

← 記事一覧に戻る