Composerの基本的な使い方
3年以内に更新されました。情報が古い可能性があります。
更新日 : 2020年06月05日
更新日 : 2020年06月05日
Composerのインストールが完了していれば、Composerコマンドを利用して自由にライブラリやパッケージをインストールすることができます。
今回はComposerを使用して簡単なライブラリをインストールし、実際にそのライブラリを使ってみるところまでやってみましょう。
テスト用のプロジェクトでComposerを試す
今回はテスト用にプロジェクトを作成していくため、MAMPで設定してあるドキュメントルートで作業を実施していきます。
プロジェクトディレクトリの作成
まずはプロジェクトを管理するディレクトリの作成をしていきましょう。
- ターミナルアプリ(Windowsの場合コマンドプロンプト)を開く
- MAMPのドキュメントルートまで移動
ターミナル起動直後はホームディレクトリ(ログイン時の初期位置)にいるため、そこからドキュメントルートまでcd
コマンドを利用して移動します。
例えば、デスクトップ直下のhtdocs
フォルダがドキュメントルートであれば、cd Desktop/htdocs
と打ったあとにEnterを押すことでそこまでディレクトリを移動できます。 - プロジェクトディレクトリを作成
移動後、mkdir composer-test
を実行すると、composer-test
という名前でフォルダができます。
Composerを利用してライブラリのインストール
- プロジェクトディレクトリに移動し、monologライブラリをインストール
cd composer-test
コマンドで作成したディレクトリに移動し、次にmonologというライブラリをComposerでインストールするために以下のコマンドを実行します。composer require monolog/monolog
$composer require monolog/monolog Using version ^2.1 for monolog/monolog ./composer.json has been created Loading composer repositories with package information Updating dependencies (including require-dev) 1/2: https://codeload.github.com/php-fig/log/legacy.zip/0f73288fd15629204f9d42b7055f72dacbe811fc 2/2: https://codeload.github.com/Seldaek/monolog/legacy.zip/38914429aac460e8e4616c8cb486ecb40ec90bb1 Finished: success: 2, skipped: 0, failure: 0, total: 2 Package operations: 2 installs, 0 updates, 0 removals - Installing psr/log (1.1.3): Loading from cache - Installing monolog/monolog (2.1.0): Loading from cache monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server) monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server) monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server) monolog/monolog suggests installing elasticsearch/elasticsearch (Allow sending log messages to an Elasticsearch server via official client) monolog/monolog suggests installing php-amqplib/php-amqplib (Allow sending log messages to an AMQP server using php-amqplib) monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required)) monolog/monolog suggests installing ext-mongodb (Allow sending log messages to a MongoDB server (via driver)) monolog/monolog suggests installing mongodb/mongodb (Allow sending log messages to a MongoDB server (via library)) monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB) monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar) monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome) Writing lock file Generating autoload files 1 package you are using is looking for funding. Use the `composer fund` command to find out more!
このようになればインストール完了です。
- 実際にディレクトリの中を確認
実際にエクスプローラなどで作成したプロジェクトの中身を見てみましょう。
以下のようにファイルやディレクトリが作成されていれば、Composerでmonologライブラリのインストールは完了しています。

インストールしたライブラリを使用してみる
今回はmonologというライブラリをインストールしました。このライブラリは、ログ出力を行ってくれるロガーという機能をもったライブラリです。
このロガーを実際に自分で書いたコードで実行してみましょう。
PHPファイルを作成し、monologを試す
composer-test
ディレクトリに、Sample.php
を作成してみましょう。
<?php
require("vendor/autoload.php");
use \Monolog\Logger;
use \Monolog\Handler\StreamHandler;
// ロガー作成
$logger = new Logger("sample");
$logger->pushHandler(new StreamHandler("logs/sample.log", Logger::INFO));
try {
// 通常ログ出力
$logger->notice("ノーティスログ");
// INFOログ出力
$logger->info("インフォログ");
// DEBUGログ出力
$logger->debug("デバッグログ");
// WARNログ出力
$logger->warning("ワーニングログ");
// 例外発生
throw new RuntimeException("ランタイム例外が発生しました。");
} catch (RuntimeException $e) {
// ERRORログ出力
$logger->error($e->getMessage());
$logger->error($e->getMessage(), array("test"));
}
echo "ログ出力テストを行いました!";
作成したらこれを実行すると、composer-test
ディレクトリ内に自動でlogs/sample.log
ファイルが作成され、Sample.php
で出力処理を行ったログが吐き出されています。
上から順番に解説していきます。
require("vender/autoload.php")
これはオートロードと呼ばれる機能を持ったPHPファイルをインポートしています。Composerでは、オートロード機能が備わっており、このautoload.php
をインポートするだけで、Composerでインストールしたライブラリを自動的にすべてインポートしてくれます。
自分で作成したコードもこのオートロードに組み込むような設定も可能です。use \Monolog\Logger
・use \Monolog\Handler\StreamHandler
これは名前空間の機能の1つで、Composerでインポートされたライブラリのどの機能を使用するかを宣言する部分です。
今回はMonologのLogger
というクラスとStreamHandler
というクラスを利用する宣言を行っています。$logger = new Logger("sample")
ここでは宣言された$logger
変数に、monologライブラリで作られたLogger
クラスのインスタンスを作成しています。
Composerでインストールされたライブラリの機能はこのように簡単に利用することができます。$logger->notice("ノーティスログ")
格納されたインスタンスのメソッドを利用している部分です。monologライブラリを利用することで、ログの区分けを簡単に行うことができ、ログの出力先も$logger->pushHandler(new StreamHandler("logs/sample.log", Logger::INFO))
で設定した通りの場所に書き込んでくれます。
まとめ
今回はComposerを利用してライブラリのインストール及びライブラリの利用まで行いました。
オートロードの機能を利用したライブラリの利用方法やライブラリのインストールに関してはこの基本とほぼ変わらないので、あとはライブラリやパッケージごとの利用方法をライブラリの公式サイトなどを見ながら使えるようになっていきましょう。