composerはPHPにおけるパッケージ管理ツールです。
類似のツールとして
LinuxのYum
PHPのpear
NodeJSのnpm
があげられます。
リポジトリと呼ばれるパッケージが登録されたサーバから、パッケージのダウンロード・インストールを行ってくれます。
また、ダウンロードしたパッケージに必要な依存パッケージも一緒に落としてくれるなど環境作成を楽にしてくれるツールです。
◆composerのインストール(Windows+Xampp環境)
PHPへのpathが通っているコマンドプロンプト(PowerShell)で次のコマンドを実行します。
※composer.pharがphp.exeに依存しているので「xampp\php」で操作するとpathを通しやすくて良いんじゃないかと。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === 'e5325b19b381bfd88ce90a5ddb7823406b2a38cff6bb704b0acc289a09c8128d4a8ce2bbafcd1fcbdc38666422fe2806') { 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.pharはcomposer本体で、PHPプログラムをphar圧縮したものです。
使用する際は
php composer.phar [コマンド]
のように使います
◆composer-setup.phpやcomposer.pharについて
composer-setup.phpがやってることはcomposer.pharをダウンロードしてるだけ。
そしてcomposer.pharは独立したPHPプログラムなのでコピペして好きなところに置いていいっぽい。
もっと言えば、composer.pharがあればわざわざインストールしなくてもcomposer.pharをコピペして使って問題なさそうですね
◆composer.pharを使いやすく(linuxっぽく)
composer.pharをダウンロードして設置しただけだと、composerを実行する際に
php composer.phar [コマンド]
のように書く必要があります。
Linux環境では
composer [コマンド]
で実行できるため、いろいろなサイトで学習するにあたって読み替えが必要になったりしますし、このほうが入力が少なくて便利ですよね。
これを実現する設定をしていきたいと思います。
composer.pharを設置したディレクトリに
composer.batを作成し、次の内容をコピーしてください。
@ECHO OFF php "%~dp0composer.phar" %*
以上です。
動作確認のために次のコマンドを実行してみてください。
composer -V
composerのバージョンが表示されればOKです。
◆composer.batを理解する
composer.batを準備すると、なぜ
composer [コマンド]
とすることができるのか?を解説してきます。
まず、コマンドプロンプトの挙動として
実行可能ファイルの拡張子(.exe,.com,.batなど)は省略できる。
っという性質があります。
なので、コマンドプロンプトに記述する「composer」とは「composer.bat」を意味します。
composer.batの中の意味は
「%~dp0composer.phar」とはcomposer.batがあるディレクトリのcomposer.phar
「%*」は、composer.batに渡されたパラメータを意味します。
php.exeでcomposer.pharを実行し、comoper.batに渡された引数を丸投げしてます。
composer -V
を実行すると次のように変換されるわけですね
php c:\xampp\php\composer.phar -V