Composerについて分かりやすく解説
2021年08月08日
phpを使って開発をしていると、最近で必ず出てくるのがComposerです。
初学者の人には、そもそもComposerってなんぞ?っていうかんじでとっつきにくいのではないでしょうか。
自分の中で、最近腑に落ちた理解の仕方があったので書いておきます。
まず、そもそも一般的なComposerの説明とは
Composerについてよく知らない人が調べると出てくる説明は「PHPのパッケージ管理用のソフト」ということなのですが、これだけ聞いても正直良くわかりません。
PHPのパッケージ管理用のソフト?は?
と自分も思っていましたが、最近貪っていて、意味がわかってきました。
それは・・・・
特定のディレクトリ以下に、そのプロジェクトで使う必要なライブラリや設定を閉じ込める仕組み(を提供するソフト)
ということです。
まず、Composerを使わないと、例えば特定のプロジェクトでPHPのライブラリをインストールするときに、あるプロジェクトで使ったライブラリのバージョンと、他のプロジェクトで使うライブラリのバージョンが違うとすると、困ったことになりますね。
Composerの場合、まずそのプロジェクトのディレクトリ以下に、そのプロジェクトに必要なライブラリを、PHP自体とは切り離して必要なライブラリ(PHPのコアな部分を除く)をインストールしてしまうわけです。(インストールするというか、ファイル群を設置するという方が適切かもしれません)
Composerを使ってプロジェクトを作成すると、そのプロジェクトフォルダのvendorというフォルダ以下に、プロジェクトでは直接触らないようなライブラリやファイルが大量に入っていると思いますが、この部分がComposerを使って導入されたライブラリのまとめの部分です。
そして、package.jsonに設定を書いておくことで、設定を変えたい場合はComposerでアップデートをかけることで、該当のプロジェクトフォルダ以下のphpのライブラリだけが更新されます。
サーバごとではなく、プロジェクトのフォルダごとに必要なPHPのライブラリ一式をまとめることができるようになるわけです。
つまり、1つのサーバに1つのシステムしか入っていない場合はComposerのようなソフトは必要ないわけですが、一つのサーバに複数のサイトやシステムを管理するようなシステムの場合、このようなシステムは重要になりますね。