/symfony

Symfony2 Bundle for TMDB ( The Movie Database ) API. Provides easy access to the wtfzdotnet/php-tmdb-api library.

Primary LanguagePHPMIT LicenseMIT

Description

A Symfony2 Bundle for use together with the php-tmdb/api TMDB Wrapper.

Installation

Install Composer

$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer

Add the following to your require block in composer.json config

"php-tmdb/symfony": "~2.0"

Configuration

Register the bundle in app/AppKernel.php:

    public function registerBundles()
    {
        $bundles = array(
        ...
        new Tmdb\SymfonyBundle\TmdbSymfonyBundle(),
        ...
    }

Add to your app/config/config.yml the following:

tmdb_symfony:
    api_key: YOUR_API_KEY_HERE

Read below how to setup the cache proplery, from there on that will be all that is required! Fire away!

Want to make use of default caching and/or logging?

This caching system will adhere to the TMDB API max-age values, if you have different needs like long TTL's you'd have to make your own implementation. We would be happy to intergrate more options, so please contribute.

tmdb_symfony:
    api_key: YOUR_API_KEY_HERE
    options:
        cache:
            enabled: true
        log:
            enabled: true
            #path: "%kernel.logs_dir%/tmdb.log"

Configure caching

First create a new doctrine_cache provider with whatever your method of caching is.

doctrine_cache:
    providers:
        tmdb_cache:
            file_system:
                directory: %kernel.root_dir%/cache/tmdb

Then update the tmdb configuration with the alias:

tmdb_symfony:
    options:
        cache:
            enabled: true
            handler: tmdb_cache

Disable repositories :

tmdb_symfony:
    api_key: YOUR_API_KEY_HERE
    repositories:
        enabled: false

Disable twig extension :

tmdb_symfony:
    api_key: YOUR_API_KEY_HERE
    twig_extension:
        enabled: false

Disable https :

tmdb_symfony:
    api_key: YOUR_API_KEY_HERE
    options:
        secure:
            enabled: false

Full configuration with defaults :

tmdb_symfony:
    api_key: YOUR_API_KEY_HERE
    repositories:
        enabled: true # Set to false to disable repositories
    twig_extension:
        enabled: true # Set to false to disable twig extensions
    options:
        adapter: null
        secure: true # Set to false to disable https
        host: "api.themoviedb.org/3/"
        sesion_token: null
        cache:
            enabled: true # Set to false to disable cache
            path: "%kernel.cache_dir%/themoviedb"
            handler: null
            suscriber: null
        log:
            enabled: false # Set to true to enable log
            path: "%kernel.logs_dir%/themoviedb.log"
            level: DEBUG
            handler: null
            suscriber: null

Usage

Obtaining the client

$client = $this->get('tmdb.client');

Obtaining repositories

$movie = $this->get('tmdb.movie_repository')->load(13);

An overview of all the repositories can be found in the services configuration repositories.xml.

There is also a Twig helper that makes use of the Tmdb\Helper\ImageHelper to output urls and html.

{{ movie.backdropImage|tmdb_image_url }}

{{ movie.backdropImage|tmdb_image_html('original', null, 50)|raw }}

For all all other interactions take a look at php-tmdb/api.