artdarek / avatarer
Avatarer - 为 Laravel 5 提供社交媒体头像
Requires
- php: >=5.3.0
- illuminate/support: ~5.1
This package is not auto-updated.
Last update: 2024-09-14 17:59:00 UTC
README
轻松从 Facebook.com 和 Gravatar.com 等社交服务获取头像
- 最初此包是为 Laravel 5 构建的,但它也可以作为一个独立的库使用。
支持的提供者
提供者可以是允许获取其用户头像的社交网络服务。目前我们支持
- Gravatar
安装
通过 composer require 命令
使用 composer require 命令安装此包。
$ composer require artdarek/avatarer
手动添加包到 composer.json 文件
将包添加到您的 composer.json 文件
"require": {
"artdarek/avatarer": "2.0.*"
}
使用 composer update 命令安装此包。
$ composer update
注册包
将 Avatarer 别名添加到您的配置文件 config/app.php
'aliases' => [ 'Avatarer' => Artdarek\Avatarer\Support\Laravel\Facades\Avatarer::class, ],
使用
初始化
要初始化 Avatarer,请调用 make() 方法并传递提供者名称(如 Gravatar/Facebook/Twitter 这样的服务名称)
<?php use \Artdarek\Avatarer\Avatar\Provider\Gravatar; ... // create avatarer object using Gravatar provider $avatar = Avatarer::make(Gravatar::class); ?>
<?php use \Artdarek\Avatarer\Avatar\Provider\Facebook; ... // create avatarer object using Facebook provider $avatar = Avatarer::make(Facebook::class); ?>
<?php use \Artdarek\Avatarer\Avatar\Provider\Twitter; ... // create avatarer object using Gravatar provider $avatar = Avatarer::make(Twitter::class); ?>
如果您想在 Laravel 框架之外使用 Avatarer 库,或者您不想在 Laravel 应用程序中使用 Avatarer Facade
,您可以这样做
<?php use \Artdarek\Avatarer\Avatar\Provider\Gravatar; ... // create avatarer object $avatar = new \Artdarek\Avatarer\Avatarer; $avatar->make(Gravatar::class); ?>
或
<?php use \Artdarek\Avatarer\Avatar\Provider\Gravatar; ... // create avatarer object $avatar = (new \Artdarek\Avatarer\Avatarer)->make(Gravatar::class); ?>
或
<?php use \Artdarek\Avatarer\Avatarer; use \Artdarek\Avatarer\Avatar\Provider\Gravatar; ... // create avatarer object $avatar = (new Avatarer)->make(Gravatar::class); ?>
设置用户
使用默认设置生成头像非常简单,您只需调用 user()
方法并传递用户 ID 作为参数(每个提供者可以通过电子邮件/ID/ScreenName 等方式分别识别用户)
对于 Gravatar,我们使用电子邮件
<?php use \Artdarek\Avatarer\Avatar\Provider\Gravatar; ... // user email $email = "example@user.email"; // create avatarer object $avatar = Avatarer::make(Gravatar::class); $avatar->user( $email ); // get url $url = $avatar->get(); ?>
对于 Facebook,我们使用用户 ID
<?php use \Artdarek\Avatarer\Avatar\Provider\Facebook; ... // user id $userID = "838979896180389"; // create avatarer object $avatar = Avatarer::make(Facebook::class); $avatar->user( $userID ); // get url $url = $avatar->get(); ?>
对于 Twitter,我们使用用户 ScreenName
<?php use \Artdarek\Avatarer\Avatar\Provider\Twitter; ... // user id $userScreenName = "artdarek"; // create avatarer object $avatar = Avatarer::make(Twitter::class); $avatar->user( $userScreenName ); // get url $url = $avatar->get(); ?>
设置头像大小
如果您想设置应返回的头像大小,可以使用 size()
方法。此方法可以接受两个参数 width
和 height
,两者都是可选的(请注意,并非所有提供者都要求或使用宽度和高度,例如 Gravatar 只期望宽度)。
对于 Gravatar
<?php // create avatarer object $avatar = Avatarer::make(Gravatar::class); $avatar->user( $email ); $avatar->size( 200 ); // get url $url = $avatar->get(); ?>
对于 Facebook
<?php // create avatarer object $avatar = Avatarer::make(Facebook::class); $avatar->user( $userID ); $avatar->size( 200, 200 ); // get url $url = $avatar->get(); ?>
设置特定提供者的选项
如果您想进一步自定义头像,可以使用 options()
方法设置一些附加参数。
对于 Gravatar
<?php // create avatarer object $avatar = Avatarer::make(Gravatar::class); $avatar->user( $email ); $avatar->size( 200 ); $avatar->options([ 'default' => 'mm', // Url to your default avatar image or [ 404 | mm | identicon | monsterid | wavatar | blank | retro ] 'forceDefault' => null, // If for some reason you wanted to force the default image to always load [ y ] 'ratings' => 'g', // Maximum rating (inclusive) [ g | pg | r | x ] ]); // get url $url = $avatar->get(); ?>
对于 Facebook
<?php $avatar = Avatarer::make(Facebook::class); $avatar->user( $userID ); $avatar->size( 200, 200 ); $avatar->options([ 'type' => 'square', // Type of avatar [ small, normal, album, large, square ] ]); $url = $avatar->get(); ?>
方法链
如果您觉得这样做更方便,可以像下面这样链接所有方法
<?php $url = Avatarer::make(Gravatar::class) ->user( $email ) ->size(220) ->options([ 'default' => 'mm' 'ratings' => 'g' ])->get(); ?>
输出格式化
默认字符串输出
通过使用 get()
方法,您可以使用 Avatarer 获取用户头像的 URL 字符串
<?php $avatar = Avatarer::make(Gravatar::class)->user( $email )->size('200'); $url = $avatar->get(); ?>
更改输出格式
如果您希望以不同的格式(如 Array、Json 或 HTML 代码)获取输出,可以通过调用带有实现 OutputInterface 的输出对象的 get()
方法来实现
要获取 Array(在类顶部添加 use \Artdarek\Avatarer\Output\ToArray;
)
<?php use \Artdarek\Avatarer\Avatar\Provider\Gravatar; use \Artdarek\Avatarer\Output\ToArray; ... $avatar = Avatarer::make(Gravatar::cass)->user( $email )->size('200'); $url = $avatar->get(new ToArray); ?>
要获取 JSON(在类顶部添加 use \Artdarek\Avatarer\Output\ToJson;
)
<?php use \Artdarek\Avatarer\Avatar\Provider\Gravatar; use \Artdarek\Avatarer\Output\ToJson; ... $avatar = Avatarer::make(Gravatar::cass)->user( $email )->size('200'); $url = $avatar->get(new ToJson); ?>
要获取 Object(在类顶部添加 use \Artdarek\Avatarer\Output\ToObject;
)
<?php use \Artdarek\Avatarer\Avatar\Provider\Gravatar; use \Artdarek\Avatarer\Output\ToObject; ... $avatar = Avatarer::make(Gravatar::cass)->user( $email )->size('200'); $url = $avatar->get(new ToObject); ?>
要获取 HTML(在类顶部添加 use \Artdarek\Avatarer\Output\ToHtml;
)
<?php use \Artdarek\Avatarer\Avatar\Provider\Gravatar; use \Artdarek\Avatarer\Output\ToHtml; ... $avatar = Avatarer::make(Gravatar::cass)->user( $email )->size('200'); $url = $avatar->get(new ToHtml); ?>
如果您想对返回的 HTML 代码有更多的控制,可以通过 ToHtml()
构造函数传递包含附加属性的数组,例如
<?php use \Artdarek\Avatarer\Avatar\Provider\Gravatar; use \Artdarek\Avatarer\Output\ToHtml; ... $avatar = Avatarer::make(Gravatar::cass)->user( $email )->size('200'); $url = $avatar->get( new ToHtml([ 'class' => 'avatar', 'id' => 'user123' ]) ); ?>