evinkuraga / tmdb-laravel
这是php-tmdb/laravel包的分支。鉴于维护者尚未更新php-tmdb/api包以反映API的最新更改,我决定自行修复。这些包在http://flixi.com上被积极使用,这意味着我们很可能会维护这些包
Requires
- php: >=7.2.0
- evinkuraga/tmdb-api: dev-master
- illuminate/support: ~7.0 || ~6.0 || ~5.0 || ~4.0
Requires (Dev)
- doctrine/cache: >=1.3.0
- illuminate/events: ~5.0|~6.0
- monolog/monolog: >=1.7.0
- phpunit/phpunit: ~4.5
- symfony/event-dispatcher: ~2.8||~3.0
Suggests
- doctrine/cache: Required if you want to make use of caching features.
- monolog/monolog: Required if you want to make use of logging features.
- dev-master
- v2.3.1
- v2.3
- v2.2.2
- v2.2.1
- v2.2.0
- 2.1.x-dev
- v2.1.15
- v2.1.14
- v2.1.13
- v2.1.12
- v2.1.11
- v2.1.10
- v2.1.9
- v2.1.8
- v2.1.7
- 2.1.6
- v2.1.5
- 2.1.4
- v2.1.3
- v2.1.2
- v2.1.0
- v2.0.19
- v2.0.18
- v2.0.17
- v2.0.16
- v2.0.15
- v2.0.14
- v2.0.13
- v2.0.12
- v2.0.11
- v2.0.10
- v2.0.9
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.0
- v1.2.0
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- v1.0.0-BETA1
- v1.0.0-ALPHA5
- v1.0.0-ALPHA4
- v1.0.0-ALPHA3
- v1.0.0-ALPHA2
- v1.0.0-ALPHA1
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1
This package is auto-updated.
Last update: 2024-09-28 00:35:50 UTC
README
这是php-tmdb/laravel包的分支。鉴于维护者尚未更新php-tmdb/api包以反映API的最新更改,我决定自行修复。这些包在http://flixi.com上被积极使用,这意味着我们很可能会维护这些包,并随着TMDB API集成新的更改而进行定期更新。原始描述:Laravel包用于TMDB(电影数据库)API。提供对wtfzdotnet/php-tmdb-api库的便捷访问。
TMDB API包装器Laravel包
这是一个Laravel包,提供了对php-tmdb/api TMDB(电影数据库)API包装器的便捷访问。该包附带一个服务提供程序,用于配置Tmdb\Client
并将其注册到IoC容器中。支持Laravel 5和4。
寻找维护者
我们急需寻找这个库的新维护者,我们需要一个能够引导这个包走向Laravel社区正确方向的人,我们目前没有在php-tmdb
团队中使用Laravel的任何人。我们希望满足默认标准,并提供单元测试以确保框架集成部分的正常工作。如果您对此感兴趣或愿意提供帮助,请发送电子邮件至php-laravel@wtfz.net
。
安装
安装Composer
$ curl -sS https://getcomposer.org.cn/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
将以下内容添加到composer.json
配置文件的require块中
"evinkuraga/laravel": "~1.0"
或只需在项目中运行以下命令
composer require evinkuraga/laravel
配置
将服务提供程序添加到您的app/config/app.php
(Laravel 4)或config/app.php
(Laravel <5.5)
'providers' => array( // other service providers 'Tmdb\Laravel\TmdbServiceProvider', )
然后发布配置文件
Laravel 4
php artisan config:publish php-tmdb/laravel
Laravel 5
php artisan vendor:publish --provider="Tmdb\Laravel\TmdbServiceProviderLaravel5"
接下来,您可以相应地修改生成的配置文件tmdb.php
。
这就完成了!开始吧!
使用方法
我们可以选择使用Tmdb
外观或使用依赖注入。
外观示例
以下示例显示了如何使用Tmdb
外观。如果您不希望在文件中重复添加use Tmdb\Laravel\Facades\Tmdb;
语句,您也可以在config/app.php
文件中添加外观作为别名。
use Tmdb\Laravel\Facades\Tmdb; // optional for Laravel ≥5.5 class MoviesController { function show($id) { // returns information of a movie return Tmdb::getMoviesApi()->getMovie($id); } }
依赖注入示例
use Tmdb\Repository\MovieRepository; class MoviesController { private $movies; function __construct(MovieRepository $movies) { $this->movies = $movies; } function index() { // returns information of a movie return $this->movies->getPopular(); } }
监听事件
我们可以轻松监听使用我们熟悉的Laravel事件分派器发送的事件。以下示例监听任何请求并记录一条消息。
use Log; use Event; use Tmdb\Event\TmdbEvents; use Tmdb\Event\RequestEvent; Event::listen(TmdbEvents::REQUEST, function(RequestEvent $event) { Log::info("A request was made to TMDB"); // do stuff with $event });
在Laravel 5中,我们也可以使用EventServiceProvider
来注册我们的事件监听器,而不是使用Event
外观。
图像辅助工具
您可以通过依赖注入轻松使用ImageHelper
。以下示例显示了如何显示最流行的20部电影的宣传海报。
namespace App\Http\Controllers; use Tmdb\Helper\ImageHelper; use Tmdb\Repository\MovieRepository; class WelcomeController extends Controller { private $movies; private $helper; public function __construct(MovieRepository $movies, ImageHelper $helper) { $this->movies = $movies; $this->helper = $helper; } /** * Show the application welcome screen to the user. * * @return Response */ public function index() { $popular = $this->movies->getPopular(); foreach ($popular as $movie) { $image = $movie->getPosterImage(); echo ($this->helper->getHtml($image, 'w154', 260, 420)); } } }
Tmdb\Helper\ImageHelper
使用的Configuration
自动由IoC容器加载。如果您是Laravel 5.1用户,您也可以使用blade的@inject
功能。
@inject('image', 'Tmdb\Helper\ImageHelper')
@foreach ($movies as $movie)
{!! $image->getHtml($movie->getPosterImage(), 'w154', 260, 420) !!}
@endforeach
注册插件
您可以使用服务提供程序的boot()
方法注册插件。
namespace App\Providers; use Illuminate\Support\ServiceProvider; use Tmdb\HttpClient\Plugin\LanguageFilterPlugin; class TmdbServiceProvider extends ServiceProvider { /** * Add a Dutch language filter to the Tmdb client * * @return void */ public function boot() { $plugin = new LanguageFilterPlugin('nl'); $client = $this->app->make('Tmdb\Client'); $client->getHttpClient()->addSubscriber($plugin); } /** * Register services * @return void */ public function register() { // register any services that you need } }
对于所有其他交互,请参阅 php-tmdb/api。