Composerを自動的にダウンロードする
Composerの公式なダウンロード方法
現在、Composerのダウンロード方法は、
にありますが、以下のようになっています。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'bf16ac69bd8b807bc6e4499b28968ee87456e29a3894767b60c2d4dafa3d10d045ffef2aeb2e78827fa5f024fbe93ca2') { 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-setup.php
のハッシュを比較して検証しており、ファイルが更新されるとハッシュ値も変わってしまうため、上記のコードではダウンロードできなくなります。
Composerのインストールを自動化していると、ファイルが更新されるたびに動かなくなってしまいます。
Composerの自動的なダウンロード方法
そこで、ハッシュ値のチェックをやめずに、Composerを自動的にダウンロードするためのスクリプトを書いてみました。
<?php
copy('https://getcomposer.org/installer', 'composer-setup.php');
$hash = trim(file_get_contents('https://composer.github.io/installer.sig'));
if (hash_file('SHA384', 'composer-setup.php') === $hash) {
echo 'Installer verified';
} else {
echo 'Installer corrupt';
unlink('composer-setup.php');
exit(1);
}
echo PHP_EOL;
passthru('php composer-setup.php');
unlink('composer-setup.php');
これで、ハッシュ値が変わっても大丈夫なはずです。
Date: 2016/06/25