core23/setlistfm-api

Setlist.fm webservice client for php with symfony integration.

0.3.0 2018-01-27 10:18 UTC

README

Latest Stable Version Latest Unstable Version License

Total Downloads Monthly Downloads Daily Downloads

Build Status Scrutinizer Code Quality Code Climate Coverage Status

Donate to this project using Flattr Donate to this project using PayPal

This library provides a wrapper for using the Setlist.fm API inside PHP and a bridge for symfony.

Installation

Open a command console, enter your project directory and execute the following command to download the latest stable version of this library:

composer require core23/setlistfm-api

composer require guzzlehttp/guzzle # if you want to use Guzzle native
composer require php-http/guzzle6-adapter # if you want to use HTTPlug with Guzzle

Usage

General usage

// Get HTTPlug client and message factory
$client         = \Http\Discovery\HttpClientDiscovery::find();
$messageFactory = \Http\Discovery\MessageFactoryDiscovery::find();

// Create connection
$connection = new \Core23\SetlistFm\Connection\HTTPlugConnection($client, $messageFactory);

$artistApi = new \Core23\SetlistFm\Service\ArtistService($connection);
$artists = $artistApi->search(array(
    'artistName' => 'Slipknot'
));

Symfony usage

If you want to use this library inside symfony, you can use a bridge.

Enable the Bundle

Then, enable the bundle by adding it to the list of registered bundles in bundles.php file of your project:

// config/bundles.php

return [
    // ...
    Http\HttplugBundle\HttplugBundle::class                             => ['all' => true],
    Core23\SetlistFm\Bridge\Symfony\Bundle\Core23SetlistFmBundle::class => ['all' => true],
];

Configure the Bundle

Create a configuration file called core23_setlistfm.yaml:

# config/packages/core23_setlistfm.yaml

core23_setlistfm:
    api:
        key:    "%setlistfm_api.key%"

Define a HTTPlug client in your configuration.

# config/packages/httplug.yaml

httplug:
    classes:
        client: Http\Adapter\Guzzle6\Client
        message_factory: Http\Message\MessageFactory\GuzzleMessageFactory
        uri_factory: Http\Message\UriFactory\GuzzleUriFactory
        stream_factory: Http\Message\StreamFactory\GuzzleStreamFactory

API cache

It is recommended to use a cache to reduce the API usage.

# config/packages/httplug.yaml

httplug:
    plugins:
        cache:
            cache_pool: 'acme.httplug_cache'
            config:
                default_ttl: 7200 # Two hours
    clients:
        default:
            plugins:
                - httplug.plugin.cache

License

This library is under the MIT license.