Skip to content

Instantly share code, notes, and snippets.

@tomshaw
Created June 2, 2012 21:03
Show Gist options
  • Save tomshaw/2859951 to your computer and use it in GitHub Desktop.
Save tomshaw/2859951 to your computer and use it in GitHub Desktop.
NukeReact
<?php
$loader = require __DIR__.'/vendor/autoload.php';
$loader->add('React', __DIR__);
$loop = React\EventLoop\Factory::create();
$files = array(
'node-v0.6.18.tar.gz' => 'http://nodejs.org/dist/v0.6.18/node-v0.6.18.tar.gz',
'php-5.4.3.tar.gz' => 'http://it.php.net/get/php-5.4.3.tar.gz/from/this/mirror',
);
$buffers = array();
foreach ($files as $file => $url) {
$readStream = fopen($url, 'r');
$writeStream = fopen($file, 'w');
$buffers[$file] = new React\Socket\Buffer($writeStream, $loop);
$loop->addReadStream($readStream, function ($readStream) use (&$buffers, $loop, $file, $writeStream) {
if (feof($readStream)) {
$loop->removeStream($readStream);
$loop->removeStream($writeStream);
echo "Finished downloading $file\n";
return;
}
$buffers[$file]->write(fread($readStream, 1024));
});
}
$loop->run();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment