risan / sl
HTTP client library for sl.se, Stockholm public transportation API.
Requires
- guzzlehttp/guzzle: ^6.1
- illuminate/support: ^5.1
Requires (Dev)
- phpunit/phpunit: ~4.8
This package is auto-updated.
Last update: 2024-10-17 21:15:53 UTC
README
PHP HTTP client library for communicating with sl.se—a Stockholm public transportation website.
Table of Contents
Dependencies
This package relies on the following libraries to work:
All above dependencies will be automatically downloaded if you are using Composer to install this package.
Installation
To install this library using Composer, simply run the following command inside your project directory:
composer require risan/sl
Or you may also add risan\sl
package into your composer.json
file like so:
"require": { "risan/sl": "~1.1" }
And don't forget to run the following composer command to install this library:
composer install
Basic Usage
Here is some basic example to use this library:
<?php // Include autoloder file. require 'vendor/autoload.php'; // Create a new instance Sl\Sl. $sl = new Sl\Sl(); // Search for station. // Will return Sl\Collections\StationColection. $stations = $sl->searchStation('Central Station'); // Find for departures. // Will return Sl\Collections\DepartureColection. $departures = $sl->departuresFrom($stations->first());
Search for Station
To search for a station, you may use the searchStation()
method:
$sl->searchStation(string $query);
For example, if you'd like to find all stations that match the central
word, then your code will look like this:
$sl = new Sl\Sl(); $stations = $sl->searchStation('central'); print_r($stations->toArray());
The searchStation()
method will automatically perform a HTTP request to sl.se to search for stations that match the given $query
. This method will return an instance of Sl\Collections\StationCollection
class, which contains a collection of Sl\Station
instances.
The StationCollection
class itself is a subclass of Illuminate\Support\Collection
, so you may leverage the powerful feature of Laravel's collection.
Find Departures
You may also find departures from a specific station using departuresFrom()
method:
$sl->departuresFrom(Sl\Station $station);
This method will perform a HTTP request to sl.se website in order to find a list of departures for a given $station
. Note that this method requires an argument that must be instance of Sl\Station
class.
For example, if you need to find all departures from Slussen
station, you can do the following:
$sl = new Sl\Sl(); $slussen = $sl->searchStation('slussen')->first(); $departures = $sl->departuresFrom($slussen); print_r($departures->toArray());
The $departures
will be an instance of Sl\Collections\DepartureCollection
which hold a collection of Sl\Departure
instances. The DepartureCollection
is also a subclass of Illuminate\Support\Collection
.
Bus Departures
To filter only the bus departures, call busses
method:
$sl->departuresFrom(Sl\Station $station)->busses();
Train Departures
To filter only the train (pendeltåg) departures, call trains()
method:
$sl->departuresFrom(Sl\Station $station)->trains();
Metro Departures
To filter only the metro (tunnelbana) departures, call metros()
method:
$sl->departuresFrom(Sl\Station $station)->metros();
Tram Departures
To filter only the tram (spårvagn) departures, call trams()
method:
$sl->departuresFrom(Sl\Station $station)->metros();
Light Rail Departures
To filter only the light rail (lokalbana) departures, call lightRails()
method:
$sl->departuresFrom(Sl\Station $station)->lightRails();
Ship Departures
To filter only the ship or boat departures, call ships()
method:
$sl->departuresFrom(Sl\Station $station)->ships();