artdarek/avatarer

Avatarer - 为 Laravel 5 提供社交媒体头像

2.0.2 2017-02-21 06:09 UTC

This package is not auto-updated.

Last update: 2024-09-14 17:59:00 UTC


README

轻松从 Facebook.com 和 Gravatar.com 等社交服务获取头像

  • 最初此包是为 Laravel 5 构建的,但它也可以作为一个独立的库使用。

支持的提供者

提供者可以是允许获取其用户头像的社交网络服务。目前我们支持

  • Gravatar
  • Facebook
  • Twitter

安装

通过 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() 方法。此方法可以接受两个参数 widthheight,两者都是可选的(请注意,并非所有提供者都要求或使用宽度和高度,例如 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' 
		])
	);
?>