PHP
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
cache
src
.gitignore
LICENSE
README.md
check.php
composer.json
composer.lock
config.default.php
index.html.php
optimize.php
parallel.php

README.md

packagist-crawler

packagist.orgをクロールして、全てのpackage.jsonをダウンロードします。 ダウンロードし終わったあとでstaticなweb serverで配信すれば、packagist.orgのミラーを作ることができます。

Requirement

  • PHP > 5.3
  • ext-curl
  • ext-hash
  • ext-json
  • ext-zlib
  • ext-PDO
  • ext-pdo_sqlite

Install

$ git clone https://github.com/hirak/packagist-crawler
$ cd packagist-crawler
$ composer install

Download!

$ php parallel.php

(...few minutes...)

$ ls cache/
p/
packages.json

Configuration

  • config.default.php
  • config.php

このどちらかのファイルがあると、挙動を変えることができます。 修正したいときはconfig.default.phpをconfig.phpにコピーして、 config.phpの方をカスタマイズしてください。

<?php
return (object)array(
    'cachedir' => __DIR__ . '/cache/',
    //'cachedir' => '/usr/share/nginx/html/',
    //'cachedir' => '/usr/local/apache2/htdocs/',
    'packagistUrl' => 'https://packagist.org',
    'maxConnections' => 4,
    'lockfile' => __DIR__ . '/cache/.lock',
    'expiredDb' => __DIR__ . '/cache/.expired.db
);

cachedir

ダウンロードしたpackages.jsonを格納するディレクトリです。

packagistUrl

ダウンロード元のpackagist.orgのURLです。 デフォルトではオリジンからダウンロードしますが、 既に存在する他のミラーサイトを指定することができます。

maxConnections

並列ダウンロードの並列数です。 増やした方が速くダウンロードできますが、 オリジンに負荷をかけるので適当なところにしてください。

expiredDb

ファイル更新によって古くなったjsonが記録されています。

License

著作権は放棄するものとします。 利用に際して制限はありませんし、作者への連絡や著作権表示なども必要ありません。 スニペット的にコードをコピーして使っても問題ありません。

ライセンスの原文

CC0-1.0 (No Rights Reserved)