php-tmdb/laravel
Composer 安装命令:
composer require php-tmdb/laravel
包简介
Laravel Package for TMDB ( The Movie Database ) API. Provides easy access to the wtfzdotnet/php-tmdb-api library.
README 文档
README
A Laravel package that provides easy access to the php-tmdb/api TMDB (The Movie Database) API wrapper.
This package comes with a service provider that configures the Tmdb\Client and registers it to the IoC container.
Both Laravel 5 and 4 are supported.
Looking for maintainers
We are urgently looking for new mainteners of this library, we need someone that can steer this package in the right direction for the Laravel community, we do not currently have anybody on the php-tmdb team that uses laravel on a daily basis. We want the default standards to be met and unit tests to be available just to verify the part of the integration with the framework works. Send an email to php-laravel@wtfz.net if you are interested, or are willing to help out.
Installation
Install Composer
$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
Add the following to your require block in composer.json config
"php-tmdb/laravel": "~1.0"
or just run the following command in your project:
composer require php-tmdb/laravel
Configuration
Add to your app/config/app.php (Laravel 4) or config/app.php (Laravel <5.5) the service provider:
'providers' => array( // other service providers 'Tmdb\Laravel\TmdbServiceProvider', )
Then publish the configuration file:
Laravel 4
php artisan config:publish php-tmdb/laravel
Laravel 5
php artisan vendor:publish --provider="Tmdb\Laravel\TmdbServiceProviderLaravel5"
Next you can modify the generated configuration file tmdb.php accordingly.
That's all! Fire away!
Usage
We can choose to either use the Tmdb Facade, or to use dependency injection.
Facade example
The example below shows how you can use the Tmdb facade.
If you don't want to keep adding the use Tmdb\Laravel\Facades\Tmdb; statement in your files, then you can also add the facade as an alias in config/app.php file.
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); } }
Dependency injection example
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(); } }
Listening to events
We can easily listen to events that are dispatched using the Laravel event dispatcher that we're familiar with. The following example listens to any request that is made and logs a message.
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 });
In Laravel 5 instead of using the Event facade we could also have used the EventServiceProvider to register our event listener.
Image helper
You can easily use the ImageHelper by using dependency injection. The following example shows how to show the poster image of the 20 most popular movies.
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)); } } }
The Configuration used by the Tmdb\Helper\ImageHelper is automatically loaded by the IoC container.
If you are a Laravel 5.1 user you could also use the blade's @inject functionality,
@inject('image', 'Tmdb\Helper\ImageHelper')
@foreach ($movies as $movie)
{!! $image->getHtml($movie->getPosterImage(), 'w154', 260, 420) !!}
@endforeach
Registering plugins
Plugins can be registered in a service provider using the boot() method.
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 } }
For all all other interactions take a look at php-tmdb/api.
php-tmdb/laravel 适用场景与选型建议
php-tmdb/laravel 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 53.3k 次下载、GitHub Stars 达 162, 最近一次更新时间为 2015 年 04 月 04 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「api」 「wrapper」 「laravel」 「tv show」 「tv」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 php-tmdb/laravel 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 php-tmdb/laravel 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 php-tmdb/laravel 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
LinkedIn API PHP SDK with OAuth 2.0 & CSRF support. Can be used for social sign in or sharing on LinkedIn. Examples. Documentation.
LinkedIn API PHP SDK with OAuth 2.0 & CSRF support. Can be used for social sign in or sharing on LinkedIn. Examples. Documentation.
A PSR-7 compatible library for making CRUD API endpoints
gv config package
A PHP (read-only) wrapper for the Git command line utility
Alfabank REST API integration
统计信息
- 总下载量: 53.3k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 165
- 点击次数: 17
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-04-04