tournasdim / laravel4-getgravatar
一个 Laravel 4 包。给定一个电子邮件地址,它会自动从 Gravatar 网站检索头像。对于已登录用户,他们的电子邮件地址将通过 Auth 适配器接口自动生成。支持三种适配器:Auth、Sentry 和 Confide。
Requires
- php: >=5.3.0
- illuminate/support: 4.0.x
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 或认证适配器不应该对您来说是“陌生”的词汇。
##安装
-
- 更新您的 Laravel 的
composer.json
文件
- 更新您的 Laravel 的
{ "require": { "laravel/framework": "4.0.*" , "tournasdim/laravel4-getgravatar": "dev-master" } }
-
- 从您的项目根目录运行
composer update
命令
- 从您的项目根目录运行
-
- 将 Gravatar 服务提供者 和别名 添加到您的配置文件
app/config/app.php
- 将 Gravatar 服务提供者 和别名 添加到您的配置文件
'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' ,
-
- 可选地将此包的配置文件“转移”到 "app/config/packages" 目录。这将给您提供自定义此包基本功能的机会。运行
php artisan config:publish "tournasdim/laravel4-getgravatar"
并打开文件 "app/config/packages/tournasdim/getgravatar/config.php" 以自定义基本功能(大小、customGravUrl、defGrav、authAdapter、maxRating)。配置文件中解释了每个选项,如果您需要具体的帮助,请提出问题。
- 可选地将此包的配置文件“转移”到 "app/config/packages" 目录。这将给您提供自定义此包基本功能的机会。运行
##卸载包
- 从 Laravel 的
composer.json
文件中移除此包的注册 - 从配置文件
app/config/app.php
中移除 Gravatar 服务提供者 - 从配置文件
app/config/app.php
中移除别名 - 如果安装过程的第 4 步已实施,请手动从
app/config/packages
目录中移除 "tournasdim" 目录。如果您不想手动删除此目录,您还可以使用 CLI:php artisan gravatar:uninstall
- 运行
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