2017 © Pedro Peláez
 

library lastfm-apio

A simple PHP wrapper for the Last.fm API that allows you to launch parallel requests.

image

j3j5/lastfm-apio

A simple PHP wrapper for the Last.fm API that allows you to launch parallel requests.

  • Sunday, December 27, 2015
  • by j3j5
  • Repository
  • 1 Watchers
  • 0 Stars
  • 10 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

Build Status, (*1)

LastfmApio

LastfmApio is a simple PHP wrapper for the Last.fm API that allows you to make parallel requests so it works faster (JS style)., (*2)

Internally, it uses marcushat/RollingCurlX, a wrapper of cURL Multi., (*3)

Installation

Add j3j5/lastfm-apio to composer.json., (*4)

"j3j5/lastfm-apio": "dev-master"

Run composer update to pull down the latest version of LastfmApio., (*5)

or alternatively, run, (*6)

$ composer require j3j5/lastfm-apio dev-master

Configuration

Open up the config.php included with the package and set there all your API key and secret (optional)., (*7)

Alternatively, you can set your own config array and use it to overwrite the config file when you create the first instance of LastfmApio. The array config must be as follows:, (*8)

$lastfm_settings = array(
    'api_key'       => 'YOUR_API_KEY',
    'api_secret'    => 'YOUR_API_SECRET',
);

$api = new LastfmApio($lastfm_settings);

Use

Once you have created your own instance of the library, you can use any of the public methods to request from Twitter's API., (*9)

If you decide to set your tokens from your own app instead of from the config file:, (*10)

use j3j5\LastfmApio;

$lastfm_settings = array(
    'api_key'       => 'YOUR_API_KEY',
    'api_secret'    => 'YOUR_API_SECRET',
);

$api = new LastfmApio($lastfm_settings);

// Now you can do all type of requests

$user_info = $api->user_getinfo(
    array('user' => $username)
);
$artist = $api->artist_getInfo(
    array('artist' => 'Rosendo')
);

Or the more interesting ones...the ones with concurrent requests!!, (*11)

use j3j5\LastfmApio;

$lastfm_settings = array(
    'api_key'       => 'YOUR_API_KEY',
    'api_secret'    => 'YOUR_API_SECRET',
);

$api = new LastfmApio($lastfm_settings);

$username = 'lapegatina';
$api->user_getweeklyartistchart(array('user' => $username), FALSE, TRUE);
$api->user_getweeklyartistchart(array('user' => $username, 'from' => 1210507200, 'to' => 1211112000), FALSE, TRUE);
$api->user_getweeklyartistchart(array('user' => $username, 'from' => 1217764800, 'to' => 1218369600), FALSE, TRUE);
$api->user_getweeklyartistchart(array('user' => $username, 'from' => 1232280000, 'to' => 1232884800), FALSE, TRUE);

// The response to all concurrent requests is return as an array using as key a string of the parameters joined by '.'
$responses = $api->run_multi_requests();
foreach($responses AS $response) {
    $allresponseresults = isset($response->weeklyartistchart->artist) ? $response->weeklyartistchart->artist : array();
    print count($allresponseresults) . " artists found." . PHP_EOL;
}

You can also change the maximum amount of concurrent requests to be launched against the API doing, (*12)

$api->set_max_concurrent_reqs(50); // High values might get you in trouble with Last.fm, please be considerate with them!

This library is deeply inspired on dandelionmood/php-lastfm, which was useful but did not support multirequests, which made me code this one., (*13)

The Versions

27/12 2015

dev-master

9999999-dev

A simple PHP wrapper for the Last.fm API that allows you to launch parallel requests.

  Sources   Download

LGPLv3

The Requires

 

The Development Requires

api php parallel last.fm