Composer(コンポーザー)とは日本語で、作曲家、構成者の意味合いがあります。一言でいうと依存性管理ツールになります。。。これだけだとなんだか分からないので例を上げて説明していきます。
例えば使いたいライブラリAがあったとして、これを使用するためには更に別のライブラリB,Cが必要だったとします。ですがそのライブラリB,Cも他のライブラリD,E....が必要なことがあります。
こうなると必要なライブラリを一つ一つインストールしていく沼にハマり、管理が面倒になっていきます。
ですが、Composerを使うと、
composer requier A
とするだけで、ライブラリAに必要なライブラリ群を一緒にダウンロードしてくれます。
#必要な環境
・パソコンはWindowsでもMacでもLinuxでも問題ありません。
・前もってPHP5.3.2以上の環境がインストールされていることが必要となります。
#導入方法
##1.インストール
パソコンはMacを使用しています。
まず公式サイトのDownloadを押します。すると、
Downloadするためのコマンドが現れたページに移ります。そこに以下のコマンドが書いていますので上から順にコピー、ペーストしていきます。
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('sha384', 'composer-setup.php') === '795f976fe0ebd8b75f26a6dd68f78fd3453ce79f32ecb33e7fd087d39bfeb978342fb73ac986cd4f54edd0dc902601dc') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
ここまでの処理を終えると、composer.pharというファイルが作成されていると思います。これがComposerになります。
##2.パスを通す
ダウンロードするだけでは使いづらいので、どのディレクトリからもcomposerコマンドを使えるように、パスを通していきます。Macだと管理者権限で実行しないといけないので、コマンドの先頭にsudoをつけて実行していきます。
$ sudo mv composer.phar /usr/local/bin/composer
これが成功されると、composer.pharがなくなっていて、/usr/local/bin/composer内に移動されています。これにより、どのディレクトリでもcomposerコマンドを使えるようになりました。
#確認
ターミナルを開いて、下記のコマンドを実行します。
$ composer --version
このコマンドを入力して、Composerのバージョンが表示されたら成功です。
#Composerのセットアップ
##1.ファイルの追加
composerを使用するには、composer.jsonファイルを作る必要があります。こちらはプロジェクトにインストールしたいライブラリ情報を記述するファイルです。プロジェクトごとに作成します。
{
"require": {
"monolog/monolog": "1.0.*"
}
}
"require"の後に、パッケージ名/バージョン番号でインストールしたいライブラリを指定します。
##2.インストール
インストールするにはターミナルでcomposer installコマンドを使います。
$ composer install
インストールが完了したら、何が変わっているかを確認しましょう。以下の要素が追加されていると思います。
1.venderディレクトリ
2.composer.lock
・venderディレクトリ
インストールしたライブラリが保存されます。
・composer.lock
ここにはライブラリの情報を記録します。
#オートローディング
インスロールされたライブラリはオートローディング機能を使って呼び出すことができます。
require 'vendor/autoload.php';
この記述により、composer.jsonに記載されている全てのライブラリが読み込まれます。
以上がcomposerの導入方法、使い方の簡易的な説明になります。
#参考サイト
公式サイト
https://getcomposer.org/download/
参考サイト
https://awesome-linus.com/2019/02/26/composer-install/
https://reffect.co.jp/php/composer-autoload#require