fusani/movies

此包最新版本(0.4.4)没有可用的许可证信息。

搜索电影/电视剧

0.4.4 2017-03-29 15:42 UTC

README

本项目提供了搜索电影或电视剧的各种仓库和方法。为了您的方便,我提供了一个创建仓库的工厂。如果您更喜欢手动操作,您也可以自由地构建自己的适配器类。您只需要确保您的适配器实现了 Fusani\Movies\Infrastructure\Provider\Adapter 接口。

这是一个非常早期的alpha版本,可能还不适合生产环境。

创建仓库

有两种方法可以创建仓库。最简单的方法是使用提供的工厂。

use Fusani\Movies\Infrastructure\Persistence\OMDB;
$factory = new OMDB\MovieRepositoryFactory();
$repository = $factory->createRepository();

另一种创建仓库的方法是实现自己的适配器并将该适配器传递给仓库。如果您希望使用Guzzle之外的东西,或者希望您的适配器在api调用前后执行额外的操作,应采用此方法。

如果您采用这种方法,需要考虑两个问题。

  1. 您的适配器类需要实现 Fusani\Movies\Infrastructure\Provider\Adapter
  2. 您的 get 方法需要返回一个数组,而不是json或xml

使用仓库

以 oneOf* 开头的方法将返回一个 Movie 对象或抛出 NotFoundException。以 manyWith* 开头的方法将返回一个 Movie 对象数组或空数组,如果没有找到提供的搜索结果。每个搜索方法都有一些需要注意的地方。

manyEpisodesOf

manyWithTitleLike

此方法将返回与提供的标题匹配的任何电影。API实现只会返回前10个结果,并且不支持返回更多行。它支持分页,但目前尚未实现。

oneOfId

在这里,id 代表一个内部imdb id。

oneOfTitle

这将返回恰好一部电影。如果有超过一部电影共享相同的标题(例如《罗密欧与朱丽叶》),它仍然只会返回一个标题。有一个可选的年份参数,可以允许您更具体地确定您要查找的电影。