| 
<?php/**************************************************
 * Example: Retrieving the city-weather using external api
 * Usage  : php examples/demo.api.weather.php
 * Storage: File
 **************************************************/
 require 'vendor/autoload.php';
 
 use Forker\Forker;
 use Forker\Storage\FileStorage;
 
 $allCitiesWeather = "";
 
 $urlApiWeather = "http://api.openweathermap.org/data/2.5/weather?q=%s&mode=xml";
 
 $myTasks = array(
 'madrid'    => sprintf($urlApiWeather, 'Madrid'),
 'london'    => sprintf($urlApiWeather, 'London'),
 'new-york'  => sprintf($urlApiWeather, 'NewYork'),
 'barcelona' => sprintf($urlApiWeather, 'barcelona'),
 'lisboa'    => sprintf($urlApiWeather, 'lisboa'),
 'iasi'      => sprintf($urlApiWeather, 'iasi'),
 );
 
 // a way to keep our data
 $storageSystem = new FileStorage;
 $numberOfSubTasks = 6;
 
 $forker = new Forker($storageSystem, $myTasks, $numberOfSubTasks);
 
 $time_start = microtime(true);
 
 $forker->fork(function($city, $url, $emit) {
 echo "Retrieving weather in $city\n";
 
 $contents = file_get_contents($url);
 $emit($city, $contents);
 });
 
 $allCitiesWeather = $forker->fetch();
 
 $time_end = microtime(true);
 $time = $time_end - $time_start;
 
 echo "it took {$time} seconds in paralel \n";
 
 $time_start = microtime(true);
 
 foreach($myTasks as $city => $url) {
 echo 'Retrieving weather in ' . $city . "\n";
 $allCitiesWeather[] = file_get_contents($url);
 }
 
 $time_end = microtime(true);
 $time = $time_end - $time_start;
 
 echo "it took {$time} seconds secuencially \n";
 |