This CakePHP 3 plugin provides integration with the TMDB API for retrieving data on movies and television from themoviedb.org. It makes use of an established TMDB API wrapper and the Webservice plugin for CakePHP.
- CakePHP 3.x
- A valid TMDB API key
Install using composer: composer require drmonkeyninja/cakephp-tmdb:3.0.*
Then add the following lines to bootstrap.php to load the plugin:
Plugin::load('Muffin/Webservice');
Plugin::load('CakeTmdb');
You will need to configure a new webservice in config/app.php using your TMDB API key:
'Webservices' => [
'Tmdb' => [
'className' => 'Muffin\Webservice\Connection',
'service' => 'CakeTmdb\Lib\Tmdb\Driver\Tmdb',
'api_key' => 'your_tmdb_api_key'
]
]
Then in bootstrap.php instruct the ConnectionManager
to consume the webservice:
ConnectionManager::setConfig(Configure::consume('Webservices'));
This plugin uses the TMDB API library so you have full access to all of the methods provided there.
For example, to search the database for movies with the title 'Toy Story':
$tmdb = \Cake\Datasource\ConnectionManager::get('Tmdb');
$data = $tmdb->getSearchApi()->searchMovies('Toy Story');
A handy little helper comes with the plugin for rendering TMDB images using the paths returned by the API. To use include the Tmdb
helper in your controller as normal:-
public $helpers = ['CakeTmdb.Tmdb'];
Then in your view:-
<?= $this->Tmdb->image($movie->poster, 'w154'); ?>
The first parameter needs to be the image path (provided by TMDB); the second parameter is the TMDB size. You can also pass an optional array of image attributes as the third parameter:-
<?= $this->Tmdb->image($movie->poster, 'w154', ['alt' => $movie->title]); ?>