vfalies / tmdb
PHP 封装了互联网电影数据库 API
Requires
- php: >= 7.1
- guzzlehttp/guzzle: >= 6.3
- psr/log: ~1.1.3
Requires (Dev)
- friendsofphp/php-cs-fixer: >=2.15.3
- monolog/monolog: >1.25.1
- phpunit/phpunit: >=7.0 <9.5.4
Suggests
- monolog/monolog: Allows more advanced logging of the application flow
README
Tmdb 是 The Movie Database API V3 的 PHP 封装。
目录
功能
实际支持的功能
- 搜索
- 电影
- 电视节目
- 收藏
- 公司
- 获取信息
- 电影
- 电视节目
- 收藏
- 公司
- 类型
- 电视网络
- 账户
- 身份验证
- 电影/电视节目评分
- 电影/电视节目收藏
- 电影/电视节目观看列表
- 媒体
- 类型
- 工作
- 查找
- IMDb
- TheTVDb
- TVRage
安装
要求
- Tmdb 支持 PHP 7.1 及以上版本
- TheMovieDatabase API 密钥
Composer
使用以下命令安装最新版本
$ composer require vfalies/tmdb
基本用法
<?php require 'vendor/autoload.php'; use VfacTmdb\Factory; use VfacTmdb\Search; use VfacTmdb\Item; // Initialize Wrapper $tmdb = Factory::create()->getTmdb('your_api_key'); // Search a movie $search = new Search($tmdb); $responses = $search->movie('star wars'); // Get all results foreach ($responses as $response) { echo $response->getTitle(); } // Get movie information $item = new Item($tmdb); $infos = $item->getMovie(11, array('language' => 'fr-FR')); echo $infos->getTitle();
用法
获取 TMDB 实例
TMDB
是库中的主要类。它有两个依赖项
- 来自 The Movie DataBase 网站 的 API 密钥
- 一个
Psr\Log\LoggerInterface
实例用于记录日志
使用工厂
这是加载 TMDB 最简单的方法
<?php require 'vendor/autoload.php'; use VfacTmdb\Factory; $tmdb = Factory::create()->getTmdb('your_api_key');
在 Slim 应用中
如果你的应用程序是用 Slim 构建的,你可以在依赖项中添加 TMDB,并将 Slim 的 Monolog 实例注入其中。只需在 dependencies.php
中添加以下内容
$container['tmdb'] = function ($c) { $api_key = $c->get('settings')['tmdb']['api_key']; $tmdb = new \vfalies\tmdb\Tmdb($api_key, $c->logger); }
在此示例中,API 密钥在 settings.php
中声明
return [ 'settings' = [ 'tmdb' = [ 'api_key' = 'your_api_key'; ] ] ];
自行操作
如果你需要注入自己的依赖项,这会很有用。在下面的示例中,我们注入了配置为在标准输出上记录日志的 Monolog。
<?php require 'vendor/autoload.php'; use VfacTmdb\Tmdb; use Monolog\Logger; use Monolog\Handler\StreamHandler; $logger = new Logger('default', [new StreamHandler('php://stdout')]) $tmdb = Tmdb('your_api_key', $logger);
电影
搜索电影
$search = new Search($tmdb); $responses = $search->movie('star wars');
搜索返回 Generator
对象,该对象为 Result\Movie
对象。
获取电影
$item = new Item($tmdb); $movie = $item->getMovie($movie_id); echo $movie->getTitle();
getter 返回一个 Movie
对象。
电视节目
搜索电视节目
$search = new Search($tmdb); $responses = $search->tvshow('game of thrones');
搜索返回 Generator
对象,该对象为 Result\TVShow
对象。
获取电视节目
$item = new Item($tmdb); $tvshow = $item->getTVShow($tvshow_id); echo $tvshow->getTitle();
getter 返回一个 TVShow
对象。
获取电视剧季
$item = new Item($tmdb); $tvseason = $item->getTVSeason($tvshow_id, $season_number); echo $tvseason->getName();
获取器返回一个 TVSeason
对象。
获取电视剧集
$item = new Item($tmdb); $tvepisode = $item->getTVEpisode($tvshow_id, $season_number, $episode_number); echo $tvepisode->getName();
获取器返回一个 TVEpisode
对象。
集合
搜索集合
$search = new Search($tmdb); $responses = $search->collection('alien');
搜索返回 Generator
对象的 Result\Collection
对象。
获取集合
$item = new Item($tmdb); $collection = $item->getCollection($collection_id); echo $collection->getName();
获取器返回一个 Collection
对象。
人物
搜索人物
$search = new Search($tmdb); $responses = $search->people('alec baldwin');
搜索返回 Generator
对象的 Result\People
对象。
获取人物
$item = new Item($tmdb); $people = $item->getPeople($people_id); echo $people->getName();
获取器返回一个 People
对象。
公司
搜索公司
$search = new Search($tmdb); $responses = $search->company('lucasfilms');
搜索返回 Generator
对象的 Result\Company
对象。
获取公司
$item = new Item($tmdb); $company = $item->getCompany($company_id); echo $company->getName();
获取器返回一个 Company
对象。
通过外部 ID 查找
$find = new Find($tmdb); $responses = $find->imdb('tt0076759');
查找方法使得通过外部 ID 在 TMDb 数据库中搜索对象变得简单。
每个来源都有其自己的方法:imdb
、tvdb
、tvrage
、facebook
、twitter
、instagram
。
查找返回一个 Result\Find
对象。每种类型的对象都可以通过特定的方法获取。返回的是一个 Generator
对象的 Result\[预期类型\]
对象。
$movies = $responses->getMovies(); $title = $movies->current()->getTitle();
每个对象支持的来源如下。
认证
连接到您的账户分为 3 步
- 获取请求令牌
- 连接到 TMDb 网站
- 创建会话
获取请求令牌
$tmdb = Factory::create()->getTmdb('your_api_key'); $Auth = new Auth($tmdb); echo $Auth->getRequestToken();
连接到 TMDb 网站
$tmdb = Factory::create()->getTmdb('your_api_key'); $Auth = new Auth($tmdb); $Auth->connect($_POST['request_token']);
此调用将页面重定向到 TMDb 网站登录页面进行身份验证和授权。默认情况下,连接后,用户将停留在 TMDb 网站上。要连接后重定向到您的网站,请使用以下代码
$tmdb = Factory::create()->getTmdb('your_api_key'); $Auth = new Auth($tmdb); $Auth->connect($_POST['request_token'], 'http://your_url');
创建会话
要使用所有账户方法,我们必须使用有效的会话。
$tmdb = Factory::create()->getTmdb('62dfe9839b8937e595e325a4144702ad'); $Auth = new Auth($tmdb); echo $Auth->createSession($_POST['request_token']);
媒体助手
库提供的所有媒体信息都是相对路径文件。
要获取有效的媒体 URL,请使用 Media
类生成 URL 并检查媒体大小
$media = new Media($tmdb); $url = $media->getPosterUrl('/AbJBXaVPrdXROwb8KmgWUPU2XJX.jpg');
支持的媒体类型如下
- 背景图
- 海报
- 标志
- 个人资料
- 静止画面
单元测试
您可以在库的源目录中使用以下命令运行单元测试套件
$ make test
关于
提交错误和功能请求
错误和功能请求在 GitHub 上跟踪
作者
Vincent Faliès - vincent@vfac.fr
许可证
VfacTmdb 根据 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE
文件