Git Product home page Git Product logo

sl's Introduction

Stockholm Pulic Transport

Build Status HHVM Status StyleCI Scrutinizer Code Quality Code Coverage SensioLabs Insight Latest Stable Version License

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();

sl's People

Contributors

risan avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.