Exemple #1
0
 public function testGetTimetable()
 {
     $query = new TimetableQuery();
     $query->setRoute(1)->setDeparture("123")->setDestination("456");
     $provider = $this->getMockProviderReturnsTimetableParser();
     $cercanias = new Cercanias($provider);
     $this->assertInstanceOf('\\Cercanias\\Entity\\Timetable', $cercanias->getTimetable($query));
 }
 * @license MIT License
 */
require __DIR__ . '/..' . '/vendor/autoload.php';
use Cercanias\Cercanias;
use Cercanias\Provider\TimetableQuery;
use Cercanias\Provider\HorariosRenfeCom\Provider;
use Cercanias\HttpAdapter\BuzzHttpAdapter;
use Cercanias\Entity\Trip;
use Cercanias\Entity\Train;
$query = new TimetableQuery();
$query->setRoute(Provider::ROUTE_BARCELONA)->setDeparture("79600")->setDestination("71802");
// Barcelona-Passeig de Gràcia
$httpAdapter = new BuzzHttpAdapter();
$provider = new Provider($httpAdapter);
$cercanias = new Cercanias($provider);
$timetable = $cercanias->getTimetable($query);
echo "Timetable 'Barcelona': \n";
echo sprintf(" - departure:     '%s'\n", $timetable->getDeparture()->getName());
echo sprintf(" - destination:   '%s'\n", $timetable->getDestination()->getName());
echo sprintf(" - transfer:      '%s'\n", $timetable->getTransferName());
echo sprintf(" - date:          %s\n", $query->getDate()->format("Y-m-d"));
$pattern = "%4s  %6s  %6s  %6s  %4s  %6s\n";
echo sprintf($pattern, "LINE", "DEPART", "ARRIVE", "DEPART", "LINE", "ARRIVE");
foreach ($timetable->getTrips() as $trip) {
    foreach (prepareResults($trip) as $item) {
        echo sprintf($pattern, $item["line"], $item["departure"], $item["arrival"], $item["transfer_departure"], $item["transfer_line"], $item["transfer_arrival"]);
    }
}
function prepareResults(Trip $trip)
{
    $result = array("line" => $trip->getDepartureTrain()->getLine(), "departure" => $trip->getDepartureTrain()->getDepartureTime()->format("H:i"), "arrival" => $trip->getDepartureTrain()->getArrivalTime()->format("H:i"), "transfer_departure" => "", "transfer_arrival" => "", "transfer_line" => "");