tournasdim/laravel4-getgravatar

一个 Laravel 4 包。给定一个电子邮件地址,它会自动从 Gravatar 网站检索头像。对于已登录用户,他们的电子邮件地址将通过 Auth 适配器接口自动生成。支持三种适配器:Auth、Sentry 和 Confide。

V1.0.0 2013-07-02 23:19 UTC

This package is not auto-updated.

Last update: 2024-09-28 15:40:29 UTC


README

头像是用户的图形表示。它可以是该人的照片,或者他们想要与之关联的随机图标。用户只需要根据他们的电子邮件地址注册一个账户,并上传一个与该账户关联的头像。另一方面,想要让他们的访客能够图形化地识别自己的网站管理员,必须实现一个对 Gravatar API 的 REST 请求。请求只是一个带有用户电子邮件地址的 URL 编码字符串。如果 Gravatar 服务器识别出这个电子邮件地址是已注册用户,就会发送回该用户的关联头像。网站管理员还可以配置他们的系统,当用户没有注册 Gravatar 时自动显示一个 Identicon。这个库旨在作为 Laravel 4.0/4.1 包使用,帮助 PHP 开发者集中精力在他们 Laravel 项目的更重要部分。

先决条件

假设您已经有一个运行的 Laravel 4 项目。也需要对 Laravel 的概念有一定的了解。例如:路由、控制器、Blade 或认证适配器不应该对您来说是“陌生”的词汇。

##安装

    1. 更新您的 Laravel 的 composer.json 文件
{	
		"require": {
		"laravel/framework": "4.0.*" , 
		"tournasdim/laravel4-getgravatar": "dev-master" 
		}	
	}
    1. 从您的项目根目录运行 composer update 命令
    1. 将 Gravatar 服务提供者 和别名 添加到您的配置文件 app/config/app.php
'providers' => array(
		'Illuminate\Foundation\Providers\ArtisanServiceProvider',
		'Illuminate\Auth\AuthServiceProvider',
		'Illuminate\Cache\CacheServiceProvider',
		'Illuminate\View\ViewServiceProvider',
		'Illuminate\Workbench\WorkbenchServiceProvider',
		` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `
		'Tournasdim\Getgravatar\GetgravatarServiceProvider'	),
'aliases' => array(
		'App'             => 'Illuminate\Support\Facades\App',
		'Artisan'         => 'Illuminate\Support\Facades\Artisan',
		'Auth'            => 'Illuminate\Support\Facades\Auth',
		'Blade'           => 'Illuminate\Support\Facades\Blade',		
		'View'            => 'Illuminate\Support\Facades\View',
		````		````		````		````			````		````
		'Gravatar' => 'Tournasdim\Getgravatar\Facades\Getgravatar' , 
    1. 可选地将此包的配置文件“转移”到 "app/config/packages" 目录。这将给您提供自定义此包基本功能的机会。运行 php artisan config:publish "tournasdim/laravel4-getgravatar" 并打开文件 "app/config/packages/tournasdim/getgravatar/config.php" 以自定义基本功能(大小、customGravUrl、defGrav、authAdapter、maxRating)。配置文件中解释了每个选项,如果您需要具体的帮助,请提出问题。

##卸载包

  1. 从 Laravel 的 composer.json 文件中移除此包的注册
  2. 从配置文件 app/config/app.php 中移除 Gravatar 服务提供者
  3. 从配置文件 app/config/app.php 中移除别名
  4. 如果安装过程的第 4 步已实施,请手动从 app/config/packages 目录中移除 "tournasdim" 目录。如果您不想手动删除此目录,您还可以使用 CLI:php artisan gravatar:uninstall
  5. 运行 composer update 命令。

基本用法

"Gravar" 类接受三个可选参数。

  • $size: 以像素为单位表示,如果定义则将覆盖配置文件中定义的值。
  • $randomize: 此功能默认启用,类将随机从一组接受名称('mm'、'identicon'、'monsterid'、'wavatar'、'retro')中选择一个名称。如果发送到 Gravatar 服务器的电子邮件未识别,则将返回指定的头像。将此选项的值设置为 "false" 将关闭随机选择,并使用 defGrav 的值作为参数(一个预定义的回退头像)。
  • $email : 默认设置为null。登录用户的邮箱通过当前Auth的适配器接口解析。应用程序当前使用的适配器在配置文件中的键("authAdapter")中定义。通过指定邮箱,我们实际上强制类将此值用于查询字符串。此功能对于未注册用户非常有用,我们将使用他们指定的邮箱(在评论部分)来构建我们的查询字符串。
  • 另一个重要的配置选项直接在配置文件中定义 "app/config/packages/tournasdim/getgravatar/config.php"(假设安装过程的第4步已执行)。如果您想使用自己的默认回退图片(可能是您的标志、一个有趣的面孔等),则可以通过提供一个图像的URL来实现。只需将您的首选URL设置为此包配置文件中的"customGravUrl"变量。如果发送到Gravatar服务器的邮箱未被识别,则将返回自定义URL的图片。但请注意,"size"属性不再生效,因为Gravatar服务器不会裁剪我们的自定义图片(请确保已上传正确的自定义回退图片尺寸)。

实际例子

从路由调用头像

  • 例子 1
/*
Defining an Email address  :
1) If recognized by Gravatar's server , its accompanied image is returned , else
2) An alternative Avatar is returned (randomly chosen from a "pool" )  
 */ 
Route::get('/' , function() 
	{

	return Gravatar::get( null , false , 'johndoe@gmail.com' ) ; 

	});
  • 例子 2
/*
* No Email address defined : For logged-in users , their email address will be send to  Gravatar's API . 
*/ 
Route::get('/' , function() 
	{

	return Gravatar::get() ; 

	});
  • 例子 3
/*
Disable "random image" , which Avatar is returned depends on :
1) if "customGravUrl" is defined , then return the image from that Url
2) if "customGravUrl" was not defined then use the image specified in "defGrav". 
 */ 
Route::get('/' , function() 
	{

	return Gravatar::get(null , false) ; 

	});
  • 例子 4
// Defining an Avatar from a Route and passing it to the View 	
Route::get('/' , function() 
	{

	$gravatar = \Gravatar::get() ; 
	return  View::make('welcome')->with('gravatar' , $gravatar) ; 

	});

从控制器调用头像

  • 例子 1
<?php namespace Tournasdim\Admin\Controllers ;
	class AdminController extends BaseController {
// No Email specified , Auth's adapter Interface will try to resolve user's Email address . 
		public function showWelcome()
		{
			$gravatar = \Gravatar::get() ; 
			return  View::make('admin.dashboard')
			->with('gravatar' , $gravatar) ; 

		}

	}
?>
	// admin/dashboard.blade.php
		@extends('layouts.admin'))
		@section('header')
		<h3>
        <i class="icon-dashboard"></i>
        Dashboard  {{$gravatar}}
        </h3>
		@stop
  • 例子 2
<?php namespace Tournasdim\Admin\Controllers ;
	class AdminController extends BaseController {
// Email is specified , this will be used into the query-string 
		public function showWelcome()
		{
			$gravatar = \Gravatar::get(null , false , 'johndoe@gmail.com') ; 
			return  View::make('admin.dashboard')
			->with('gravatar' , $gravatar) ; 

		}

	}
?>
	// admin/dashboard.blade.php
		@extends('layouts.admin'))
		@section('header')
		<h3>
        <i class="icon-dashboard"></i>
        Dashboard  {{$gravatar}}
        </h3>
		@stop

从控制器构造函数调用头像

  • 例子 1
<?php namespace Tournasdim\Admin\Controllers ;
	class BaseController extends Controller {
	
    protected $gravatar ; 

    public function __construct() 
    {
 
       $this->gravatar = \Gravatar::get() ; 
    }
?>
// A controller that extends the base controller 
	<?php namespace Tournasdim\Admin\Controllers ;
	class AdminController extends BaseController {
	    public function index()
		{
		return View::make('admin.dashboard')
		->with('gravatar' , $this->gravatar);
		}
		
		public function profiler()
		{
		return View::make('admin.profiler')
		->with('gravatar' , $this->gravatar);
		}
	}
?>
		
		// views/admin/dashboard.blade.php
		@extends('layouts.admin'))
		@section('header')
		<h3>
        <i class="icon-dashboard"></i>
        Dashboard  {{$gravatar}}
        </h3>
		@stop

获取帮助的地方

在此存储库上打开一个新问题,我会尽力帮助。请仅将您的问题限于与此项目相关的问题。Laravel的论坛/IRC是获取有关框架的一般信息的更合适的地方。欢迎报告错误,但我也很乐意听到您对存储库的经验和建议。

特别感谢

当然,Laravel框架的创建者(Taylor Otwell)以及Laravel论坛/IRC频道的所有活跃成员。

待办事项

  • 根据用户反馈,将相应地进行改进。
  • 用户可以选择输入各种个人资料信息以与他们的Gravatar账户关联。这些信息可以通过Gravatar的API公开访问。可能,此包的未来版本将实现此功能。
  • 完成单元测试类

开发期间使用的工具

  • 一个无头Linux盒(CentOs 6)作为Web服务器(Apache 2,PHP5.4)
  • Sublime Text 2(免费版)
  • Phing用于自动部署到GitHub以及用于FTP到Linux盒
  • Git-Bash用于代码版本控制
  • Windows 7带有WAMP堆栈(Apache2.2.2,PHP5.4.3)

许可证

Getgravatar

我的博客

@版权所有 Tournas Dimitiros 2013

此程序是免费软件:您可以重新分配它并/或修改它,具体请参阅由自由软件基金会发布的GNU通用公共许可证的条款,许可证版本3或(根据您的选择)任何后续版本。

此程序的分发是希望它将是有用的,但没有任何保证;甚至没有关于适销性或适用于特定目的的隐含保证。有关更多信息,请参阅GNU通用公共许可证。

您应该已收到此程序的GNU通用公共许可证副本。如果没有,请参阅https://gnu.ac.cn/licenses/

@作者 Tournas Dimitrios tournasdimitrios@gmail.com @版本 V1.0.0