ascension/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-24 06:21:30 UTC


README

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

先决条件

假设您已经有一个运行的 Laravel 4 项目。还需要具备对 Laravel 概念的基本知识。例如:路由、控制器、Blade 或 Authentication-adapter 不应该对您来说是“陌生”的单词。

##安装

    1. 更新您的 Laravel 的 composer.json 文件
{	
		"require": {
		"laravel/framework": "4.0.*" , 
		"ascension/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 的值作为参数(一个预定义的回退头像)。
  • 电子邮件: 默认设置为null。登录用户的电子邮件通过使用当前认证的适配器接口来解决。应用程序当前使用的适配器定义在配置文件中的键("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公开访问。可能的话,本包的未来版本将实现此功能。
  • 完成单元测试类

开发过程中使用的工具

  • 作为Web服务器(Apache 2,PHP5.4)的无头Linux服务器(CentOs 6)
  • Sublime Text 2(免费版本)
  • Phing用于自动部署到GitHub和FTP到Linux服务器
  • Git-Bash用于代码的版本控制
  • 带有WAMP堆栈的Windows 7(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