core23/lastfm-bundle

This bundle provides services for using the last.fm API inside the symfony.

0.3.0 2018-01-27 10:30 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 bundle provides a wrapper for using the Last.fm API inside symfony.

Installation

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

composer require core23/lastfm-bundle
composer require php-http/guzzle6-adapter # if you want to use Guzzle

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\LastFmBundle\Core23LastFmBundle::class => ['all' => true],
];

Configure the Bundle

Define the API credentials in your configuration.

# config/packages/core23_lastfm.yaml

core23_lastfm:
    api:
        app_id:         "%lastfm_api.id%"
        shared_secret:  "%lastfm_api.secret%"

Usage

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
    clients:
        default:
            # ...
            plugins:
                - httplug.plugin.redirect # plugin is needed for the webcrawler

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 bundle is under the MIT license.