なんとなく使っていたコンポーザーについて

コンポーザーは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.*"

最後に

開発時に各メンバーの環境に差異をなくすことや、どのライブラリを利用したかが分かること、更にラブラリの読み込みも自動でやってくれて便利です。
コンポーザーを使用しないとどうでしょう。これらを自分でやらないといけないです。それを考えたらコンポーザーの利便性が分かりました。

© DeNnie.Lab All Rights Reserved.