Composerの使い方(基本)
Composer(コンポーザー)とはPHPのパッケージ管理システムのことです。パッケージ管理システムとはコマンドライン上でソフトウェアやライブラリ等のインストールやアップデートを行うためのツールです。Composer はPHPの開発には欠かせないツールの1つとなっています。
本稿はMacでの解説になりますので、WindowsでのComposerのインストール方法は下記の記事を参考にしてください。WindowsでもComposerの使い方は同じですので、本稿の後半を参照してください。
筆者の開発環境
PC:Apple M1 チップ搭載MacBook Air
OS:macOS Ventura 13.6
PHP:8.2.0
phpコマンドにパスを通す
パスの通し方については下記の記事を参考にしてください。すでにパスの通っている方はこの手順は不要です。
Composerのインストール
Composerのインストールは公式サイトで案内された手順で行います。すでにインストール済みの方はこの手順は不要です。
ターミナルを開き、下記のコマンドを1行ずつコピー&ペーストしてコマンドを実行してください。ペーストできたらエンターを押すと命令が実行されます。2行目が長くなっていますのでコピーの際に気をつけてください。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
4行目まで実行できたら、下記のコマンドを実行してください。パスワードはお使いのパソコンのパスワードです。(入力が表示されませんが、入力が終わればエンターキーを押せばOKです。)
sudo mv composer.phar /usr/local/bin/composer
これでcomposerコマンドが使用できるようになりました。
バージョン確認
お使いのComposerのバージョンを確認してみましょう。Composerには1.x系と2.x系があります。今ダウンロードしたComposerは2.x系ですが、プロジェクトによっては1.x系が必要になることもあります。
composer -V
パッケージのインストール
予め作業フォルダを作っておきましょう。下記のコマンドを実行して作業フォルダを作ってください。フォルダ名は何でもかまいません。
mkdir test
作業フォルダが作成できたらカレントディレクトリを変更しましょう。
cd test
移動できたら下記のコマンドを実行し、Carbonという日時を扱うパッケージをインストールしてみましょう。
composer require nesbot/carbon
「composer require パッケージ名」でパッケージをインストールできます。パッケージはGitHubや、下記のPackagistで検索することができます。
実行が完了すると、「composer.json」「composer.lock」という2つのファイルと「vendor」というフォルダが新しくできているかと思います。
パッケージの本体のコードは「vendor」フォルダの中に置かれています。後で説明しますが、ここ(vendor)からインクルードしてパッケージを使用します。
「composer.json」「composer.lock」の2つのファイルがパッケージを管理する仕組みになります。
「composer.json」にはプロジェクトで使うパッケージの一覧が書かれています。下記のようになっているかと思います。「nesbot/carbon」がパッケージ名で、「2.71」というのがバージョンです。「2.71」の前の「^」(ハット)はバージョンの範囲指定を表す記号です。興味があれば調べてみてください。
{
"require": {
"nesbot/carbon": "^2.71"
}
}
composer.lockからインストールする
「composer.lock」はcomposerを使ってインストールされたパッケージの正確な情報が書かれています。そのため別のパソコンや環境でパッケージをインストールする時に、「composer.json」と「composer.lock」さえ共有していれば、全く同じパッケージのバージョンを再現することができます。これは複数人で開発している時や、開発環境と本番環境でバージョン違いによるエラー等を防げることを意味しています。本番環境との環境の差異が小さければ小さいほど環境由来のエラーに悩まされることが少なくなります。
それでは、擬似的に別環境を準備して試してみましょう。下記のコマンドを実行してカレントディレクトリを変更してください。
cd ../
別の作業フォルダを作成しましょう。下記のコマンドを実行してください。
mkdir test2
作成できたらカレントディレクトリを変更しましょう。下記のコマンドを実行してください。
cd test2
「composer.json」と「composer.lock」をコピーします。下記のコマンドを実行してください。
cp ../test/composer.json ./
cp ../test/composer.lock ./
準備ができたら、下記のコマンドを実行してください。「composer.lockを使ってパッケージをインストールせよ」という意味になります。
composer install
実行が完了すると、新たに「vendor」フォルダが作られています。これはパッケージがインストールされたことを意味します。興味のある方はcomposer.lockを開いて、「nesbot/carbon」のバージョンを見比べてみてください。全く同じバージョンがインストールされていることが分かると思います。(composer.lockは中身が長いのでここでは掲載しません。検索等を使ってうまく探してみてください。)
インストールしたパッケージの使い方
どちらの作業フォルダでも構いませんので、下記のコマンドを実行してindex.phpを作成してください。
touch index.php
vimかお使いのエディターで下記のように編集してください。
<?php
require 'vendor/autoload.php';
use Carbon\Carbon;
echo sprintf('現在時刻: %s', Carbon::now());
ポイントは2行目の「require 'vendor/autoload.php';」です。これはオートローダーという仕組みで1つ1つのクラスをインクルードしなくても、必要なクラスを自動でインクルードしてくれます。この1文を書くだけでComposerでインストールしたパッケージが使えるようになります。
それではphpコマンドで実行してみましょう。現在時刻が表示されます。
php index.php
最も基本的なComposerの使い方を解説しました。おつかれさまでした。
PHP/Laravelのシステム開発は株式会社パパグラムへぜひご相談ください。
この記事が気に入ったらサポートをしてみませんか?