こんにちは
本日は、PHPMatsuri2013 で作った compsoer-proxy.jp
について、説明したいと思います。
解説Slide
Github
https://github.com/kawahara/composer-proxy
composer-proxy.jp は、リクエストされたパッケージ情報 (*.json) を
キャッシュしていく、プロキシサーバです。
見ての通り、アプリは大変シンプルなものになります。
サーバの中では、1時間に1回、利用頻度の高そうなもの
(Symfony Standard, Silex, Behat 周り) を、定期的にキャッシュするようにしています。
したがって、上記のプロジェクトに関しては、そこそこ快適にファイルの取得が
できる。はずです。
とは言え、まだ課題はあります。遅い原因のもう一つが、パッケージそのものの取得です。
satis では、パッケージを
キャッシュする機能があるため更に高速に動きます。(Github から zip ファイルを先に取得しローカルに配置)
そこで、この機能を composer-proxy にも実装する予定でおります。
さくらのクラウドのストレージをいっぱい使いそうな機能ですが、なんとかなるはずw
問題は、パッケージ情報ファイルのハッシュ値が変わってしまうため、そこを変換して
なんとかする機能が必要そうです。
また、ダウンロード数の通知や、検索機能などは実装しておりません。
めんどくさかったからです。
個人的には、ダウンロード通知なんかは、別に多少遅れてもいいので、
React で Queue System をつくって対処するつもりです。
そして、こちらの作品は、皆様のご支持をいただきまして、PHPMatsuri2013の
LT大会で3位に入賞出来ました。ありがとうございます!!
あとで「景品のネオジオXで遊ぶ」という記事を書く予定です!