コンポーザーはphpのライブラリを管理するツールです。
フレームワークやライブラリをインストールするときにコンポーザーを利用します。コンポーザーは関連(依存)するパッケージを含みインストールしてくれます。
何気なく利用していたコンポーザーについて調べたことを記載します。
目次
コンポーザーのメリット
コンポーザーの最大のメリットは、開発時にメンバー間で利用するライブラリに差異を持たせないことです。
自分の環境ではなぜか開発中のアプリケーションが動かないということはありませんか。同じバージョンのパッケージを含んだライブラリを使用することでメンバー間の環境に差異をなくし、自分の環境だけアプリケーションが動かなくて、自分の環境を調査するという無駄な時間を省けます。
開発時に必要なライブラリを共有
コンポーザーを利用してライブラリやフレームワークをインストールすると、composer.jsonとcomposer.lockというファイルが生成されます。コンポーザーはインストールしたライブラリの情報をcomposer.jsonに記載し、実際に何をインストールしたかをcomposer.lockに記載します。開発時に他のメンバーとcomposer.lockファイルを共有することで同じ依存関係を持つ同じバージョンのパッケージを含んだライブラリが使用できます。
設定ファイル
composer.json
composer.jsonへ、利用したいライブラリを記載しインストールすることが出来ます。
composer.lock
通常コンポーザーはcomposer.jsonに記載されたライブラリに依存するパッケージを探しインストールを行います。composer.lockファイルはインストールした結果が記載されているので、コンポーザーは依存するパッケージを探すことなくインストールを行います。
コンポーザーの出力先
コンポーザーを利用するとインストールした内容を”vendor”ディレクトリへ出力します。
ライブライの読み込み
これもコンポーザーのメリットの一つですが、ライブラリの読み込みも自動で行ってくれます。コンポーザーを使用してライブラリをインストールすると、vendor/autoload.phpというファイルを生成します。このファイルを読み込み(require)することで、vendor配下のライブラリを読み込むことができます。
フレームワークのインストール
最近のPHPのフレームワークはコンポーザーを利用することを前提としています。
下記は、LaravelというPHPのフレームワークをインストールするコマンドの列です。
このコマンドを実行すると、実行したディレクトリに”blog”というディレクトリが生成されLarave5.5がインストールされます。
composer create-project --prefer-dist laravel/laravel blog "5.5.*"
最後に
開発時に各メンバーの環境に差異をなくすことや、どのライブラリを利用したかが分かること、更にラブラリの読み込みも自動でやってくれて便利です。
コンポーザーを使用しないとどうでしょう。これらを自分でやらないといけないです。それを考えたらコンポーザーの利便性が分かりました。