1. Go to this page and download the library: Download php-tmdb/api library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
php-tmdb / api example snippets
use Tmdb\Client;
$client = new Client();
$movie = $client->getMoviesApi()->getMovie(550);
use Tmdb\Client;
$client = new Client();
$movie = $client->getMoviesApi()->getMovie(550, ['language' => 'en']);
use Tmdb\Repository\MovieRepository;
use Tmdb\Client;
$client = new Client();
$repository = new MovieRepository($client);
$movie = $repository->load(87421);
echo $movie->getTitle();
use Tmdb\Repository\MovieRepository;
use Tmdb\Client;
$client = new Client();
$repository = new MovieRepository($client);
$topRated = $repository->getTopRated(['page' => 3]);
// or
$popular = $repository->getPopular();
use Tmdb\Client;
$client = new Client([
'hydration' => [
'event_listener_handles_hydration' => true,
'only_for_specified_models' => [
Tmdb\Model\Movie::class
]
]
]);
use Symfony\Component\EventDispatcher\EventDispatcher;
use Tmdb\Event\HydrationEvent;
use Tmdb\Event\Listener\HydrationListener;
$eventDispatcher = new EventDispatcher();
$hydrationListener = new HydrationListener($eventDispatcher);
$eventDispatcher->addListener(HydrationEvent::class, $hydrationListener);
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
use Tmdb\Event\Listener\Psr6CachedRequestListener;
use Tmdb\Repository\MovieRepository;
use Tmdb\Client;
$client = new Client();
$cache = new FilesystemAdapter('php-tmdb', 86400, __DIR__ . '/cache');
$requestListener = new Psr6CachedRequestListener(
$client->getHttpClient(),
$client->getEventDispatcher(),
$cache,
$client->getHttpClient()->getPsr17StreamFactory(),
[]
);
$repository = new MovieRepository($client);
$popular = $repository->getPopular();
use Monolog\Logger;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Tmdb\Event\Listener\Logger\LogApiErrorListener;
use Tmdb\Event\TmdbExceptionEvent;
use Tmdb\Formatter\TmdbApiException\SimpleTmdbApiExceptionFormatter;
$eventDispatcher = new EventDispatcher();
$apiErrorListener = new LogApiErrorListener(
new Logger(),
new SimpleTmdbApiExceptionFormatter()
);
$eventDispatcher->addListener(TmdbExceptionEvent::class, $apiErrorListener);
use Symfony\Component\EventDispatcher\EventDispatcher;
use Tmdb\Event\BeforeRequestEvent;
use Tmdb\Event\HttpClientExceptionEvent;
use Tmdb\Event\Listener\Logger\LogHttpMessageListener;
use Tmdb\Event\ResponseEvent;
use Tmdb\Formatter\HttpMessage\SimpleHttpMessageFormatter;
$eventDispatcher = new EventDispatcher();
$requestLoggerListener = new LogHttpMessageListener(
new Monolog\Logger(),
new SimpleHttpMessageFormatter()
);
$eventDispatcher->addListener(BeforeRequestEvent::class, $requestLoggerListener);
$eventDispatcher->addListener(ResponseEvent::class, $requestLoggerListener);
$eventDispatcher->addListener(HttpClientExceptionEvent::class, $requestLoggerListener);
use Symfony\Component\EventDispatcher\EventDispatcher;
use Tmdb\Event\BeforeHydrationEvent;
use Tmdb\Event\Listener\Logger\LogHydrationListener;
use Tmdb\Formatter\Hydration\SimpleHydrationFormatter;
$eventDispatcher = new EventDispatcher();
$hydrationLoggerListener = new LogHydrationListener(
new Monolog\Logger(),
new SimpleHydrationFormatter(),
false // set to true if you wish to add the json data passed for each hydration, do not use this in production!
);
$eventDispatcher->addListener(BeforeHydrationEvent::class, $hydrationLoggerListener);
use Symfony\Component\EventDispatcher\EventDispatcher;
use Tmdb\Event\BeforeRequestEvent;
use Tmdb\Event\Listener\Request\AdultFilterRequestListener;
$eventDispatcher = new EventDispatcher();
$adultFilterListener = new AdultFilterRequestListener(true);
$eventDispatcher->addListener(BeforeRequestEvent::class, $adultFilterListener);
use Symfony\Component\EventDispatcher\EventDispatcher;
use Tmdb\Event\BeforeRequestEvent;
use Tmdb\Event\Listener\Request\LanguageFilterRequestListener;
$eventDispatcher = new EventDispatcher();
$languageFilterListener = new LanguageFilterRequestListener('nl-NL');
$eventDispatcher->addListener(BeforeRequestEvent::class, $languageFilterListener);
use Symfony\Component\EventDispatcher\EventDispatcher;
use Tmdb\Event\BeforeRequestEvent;
use Tmdb\Event\Listener\Request\RegionFilterRequestListener;
$eventDispatcher = new EventDispatcher();
$regionFilterListener = new RegionFilterRequestListener('nl');
$eventDispatcher->addListener(BeforeRequestEvent::class, $regionFilterListener);
use Tmdb\Client;
use Tmdb\Token\Session\GuestSessionToken;
$client = new Client();
$client->setGuestSessionToken(new GuestSessionToken('my_token'));
// Now you can make calls in the guest sessions namespace.
use Tmdb\Client;
use Tmdb\Helper\ImageHelper;
use Tmdb\Model\Image;
use Tmdb\Repository\ConfigurationRepository;
$client = new Client();
$image = new Image();
$configRepository = new ConfigurationRepository($client);
$config = $configRepository->load();
$imageHelper = new ImageHelper($config);
echo $imageHelper->getHtml($image, 'w154', 154, 80);
use Tmdb\Model\Movie;
use Tmdb\Model\Image\PosterImage;
$movie = new Movie();
foreach($movie->getImages()->filter(
function($key, $value){
return $value instanceof PosterImage;
}
) as $image) {
// do something with all poster images
}
use Tmdb\Model\Movie;
/** @var $movie Movie **/
$backdrop = $movie
->getImages()
->filterBackdrops()
;
shell script
composer
log
[2021-01-01 13:11:18] php-tmdb.INFO: Sending request: GET https://api.themoviedb.org/3/company/1? []
log
[2021-01-01 13:11:18] php-tmdb.DEBUG: Hydrating model "Tmdb\Model\Image\LogoImage". {"data":{"file_path":"/o86DbpburjxrqAzEDhXZcyE8pDb.png"},"data_size":49} []
[2021-01-01 13:11:18] php-tmdb.DEBUG: Hydrating model "Tmdb\Model\Company". {"data":{"description":"","headquarters":"San Francisco, California","homepage":"https://www.lucasfilm.com/","id":1,"logo_path":"/o86DbpburjxrqAzEDhXZcyE8pDb.png","name":"Lucasfilm Ltd.","origin_country":"US","parent_company":null},"data_size":227} []
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.