redeman / imgur-laravel
Imgur API 的 Laravel 扩展包。提供对 adyg/php-imgur-api-client 库的便捷访问。
Requires
- php: >=5.4.0
- adyg/php-imgur-api-client: ~1.0.0
- illuminate/support: ~5.0 || ~4.0
Requires (Dev)
- mockery/mockery: ^0.9.4
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-09-28 17:59:56 UTC
README
一个用于使用 Imgur API 的 Laravel (4 / 5) 扩展包。内部使用 adyg/php-imgur-api-client。此包提供了一个服务提供者、一些配置和一个外观,这样您应该可以立即开始编写您的应用程序。
有关如何使用 adyg/php-imgur-api-client
的更详细文档,请参阅他们的文档。
快速示例
use Redeman\Imgur\Facades\Imgur; $images = Imgur::api('gallery')->randomGalleryImages(); foreach ($images as $image) { echo '<li><img src="' . $image->getLink() . '"></li>'; }
入门
首先,您需要使用 composer 安装此包,这可以通过将以下内容添加到您的 require
块中完成,
"redeman/imgur-laravel": "~1.0",
然后,您可以通过添加以下内容来注册服务提供者,
'Redeman\Imgur\ImgurServiceProvider',
到您的 providers 数组(在 config/app.php
中)。Imgur 使用 OAuth 2.0 验证用户。因此,如果您希望用户能够查看和上传图片,则需要从用户那里获取认证令牌。在 Laravel 5 中,您可以通过首先将 Redeman\Imgur\Middleware\AuthenticateImgur
中间件添加到您的 App\Http\Kernel
中的路由中间件来实现。
/** * The application's route middleware. * * @var array */ protected $routeMiddleware = [ // your other route middleware 'imgur' => 'Redeman\Imgur\Middleware\AuthenticateImgur', ];
接下来,您应该将 imgur
中间件添加到任何需要通过 Imgur 验证用户的路由中。AuthenticateImgur
中间件将存储和检索用户的访问令牌。如果用户未通过 Imgur 验证(这意味着您的应用程序不知道用户的访问令牌),则用户将被重定向到名为 imgur.authenticate
的路由。如果您是 Laravel 4 用户,则只需添加服务提供者即可。此提供者将注册一个 imgur
过滤器,您可以在路由中使用它,以下是如何做到这一点的示例。在以下部分中,我们展示了一些简单路由的示例。
示例
routes.php
:
// Show the user a random image Route::get('/', ['middleware' => ['imgur'], function() { $client = App::make('Imgur\Client'); $images = $client->api('gallery')->randomGalleryImages(); return View::make('imgur.images')->with('images', $images); }]); // Ask the user to authenticate using Imgur's services Route::get('imgur/authenticate', ['as' => 'imgur.authenticate', function() { $client = App::make('Imgur\Client'); return View::make('imgur.authenticate')->with('imgurUrl', $client->getAuthenticationUrl()); }]);
如果您是 Laravel 4 用户,则应将 middleware
替换为 before
。
imgur.images.blade.php
:
<p>Here are some images for you to enjoy:</p> @foreach ($images as $image) <img src="{{ $image->getLink() }}"> @endforeach
imgur.authenticate.blade.php
:
<h2>You need to register with Imgur in order to visit this page:</h2> <a href="{{ $imgurUrl }}">Click to authorize</a>
现在您已经准备就绪!下一部分将描述如何配置此包以使用您的客户端 ID、密钥和自定义 TokenStorage
。
配置
首先发布配置文件
Laravel 4
php artisan config:publish redeman/imgur-laravel
Laravel 5
php artisan vendor:publish --provider="Redeman\Imgur\ImgurServiceProviderLaravel5"
现在您可以填写 client_id
和 client_secret
的适当值。建议使用包含您的客户端 ID 和密钥的 .env
文件。以下是在 Laravel 5 中如何做到这一点的示例
/* * Public client id */ 'client_id' => env('CLIENT_ID'), /** * Client secret */ 'client_secret' => env('CLIENT_SECRET'),
阅读Laravel 文档 了解有关环境配置的更多信息。
使用自定义 TokenStorage
AuthenticateImgur
中间件使用 Redeman\Imgur\TokenStorage\Storage
接口来存储用户的访问令牌。默认情况下,我们提供了一个 SessionStorage
,它将数据保存在用户的会话中。但是,您也可以使用数据库或其他存储设施。为此,您需要将 config/imgur.php
文件中的 token_storage
值更改为您想要使用的类的名称。
待办事项
- 默认提供更多存储设施
- 为中间件和过滤器添加测试