利用Laravel生成Gravatar头像地址的优雅方法


Posted in PHP onDecember 30, 2017

前言

Gravatar头像已经成为了博客、论坛等一种非常流行的通用头像,不管是Wordpress还是Z-Blog、Typecho、Emlog等,留言或者登录注册等都支持Gravatar头像,Laravel Gravatar 扩展包提供了最简单优雅的方式来生成 Gravatar 全球公认头像地址。灵活方便的 API ,支持多连接配置,支持镜像地址。

项目主页:https://github.com/ElfSundae/laravel-gravatar

安装

$ composer require elfsundae/laravel-gravatar

配置

虽然本扩展包不需要任何设置也能使用,但是为了不在代码中硬编码图片尺寸等参数、以及使用镜像地址(你懂的),所以建议使用配置文件来配置 Gravatar 连接 (connection)。

为了性能,本扩展包不注册 service provider ,所以需要手动拷贝配置文件到你的应用:

$ cp vendor/elfsundae/laravel-gravatar/config/gravatar.php config/gravatar.php

配置文件有很详细的注释,请自行阅读。

在配置文件中你可以为你的应用配置多个 Gravatar 连接 (connection) ,除了 Gravatar 的图片参数(详见 https://en.gravatar.com/site/implement/images/) 外,还可以设置 url 镜像地址。默认的 connection 名称是 default 。

配置示例:

'default' => [
 'url' => 'https://gravatar.cat.net/avatar',
 'size' => 120,
],
'small' => [
 'url' => 'https://gravatar.cat.net/avatar',
 'size' => 40,
],
'large' => [
 'url' => 'https://gravatar.cat.net/avatar',
 'size' => 460,
],

API

只有一个全局帮助函数: gravatar()

/**
 * Generate Gravatar avatar URL for the given email address.
 *
 * @param string $email Email or email hash
 * @param string|int $connection Connection name or image size
 * @param string|int $size Connection name or image size
 * @return string
 */
function gravatar($email, $connection = 'default', $size = null)

使用示例

// 为 email 生成头像地址,使用 "default" 连接配置
gravatar('foo@example.com');
// 为 email 的 MD5 哈希值生成头像地址,使用 "default" 连接配置
gravatar('b48def645758b95537d4424c84d1a9ff');
// 使用 "large" 连接配置
gravatar($email, 'large');
// 使用 "default" 连接配置,并覆盖 size 参数为 100
gravatar($email, 100);
// 使用 "avatar" 连接配置,并覆盖 size 参数为 100
gravatar($email, 'avatar', 100);
// 或者:
gravatar($email, 100, 'avatar');

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
色色整理的PHP面试题集锦
Mar 08 PHP
php实现下载限制速度示例分享
Feb 13 PHP
两千行代码的PHP学习笔记汇总
Oct 05 PHP
php中删除数组的第一个元素和最后一个元素的函数
Mar 07 PHP
PHP实现获取某个月份周次信息的方法
Aug 11 PHP
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
Apr 27 PHP
php用户登录之cookie信息安全分析
May 13 PHP
Yii调试查看执行SQL语句的方法
Jul 15 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
Sep 16 PHP
PHP实现上传图片到数据库并显示输出的方法
May 31 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
Mar 02 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
Mar 16 PHP
PHP如何实现订单的延时处理详解
Dec 30 #PHP
PHP 的Opcache加速的使用方法
Dec 29 #PHP
PHP自定义序列化接口Serializable用法分析
Dec 29 #PHP
PHP检测接口Traversable用法详解
Dec 29 #PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
Dec 28 #PHP
PHP迭代器接口Iterator用法分析
Dec 28 #PHP
PHP数组式访问接口ArrayAccess用法分析
Dec 28 #PHP
You might like
PHP5.5在windows安装使用memcached服务端的方法
2014/04/16 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
javascript全局变量封装模块实现代码
2012/11/28 Javascript
jquery监听div内容的变化具体实现思路
2013/11/04 Javascript
使用script的src实现跨域和类似ajax效果
2014/11/10 Javascript
jquery图形密码实现方法
2015/03/11 Javascript
自定义百度分享的分享按钮
2015/03/18 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
2015/11/03 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
2017/06/04 Javascript
用jquery获取select标签中选中的option值及文本的示例
2018/01/25 jQuery
单页面vue引入百度统计的使用方法示例详解
2018/10/13 Javascript
Three.js实现3D机房效果
2018/12/30 Javascript
Vue axios获取token临时令牌封装案例
2020/09/11 Javascript
python 中的列表解析和生成表达式
2011/03/10 Python
Python专用方法与迭代机制实例分析
2014/09/15 Python
Python中exit、return、sys.exit()等使用实例和区别
2015/05/28 Python
django之常用命令详解
2016/06/30 Python
Python实现识别手写数字大纲
2018/01/29 Python
Django渲染Markdown文章目录的方法示例
2019/01/02 Python
Python3.5多进程原理与用法实例分析
2019/04/05 Python
Python的pygame安装教程详解
2020/02/10 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
迪士尼英国官方商店:shopDisney UK
2019/09/21 全球购物
Carrs Silver官网:英国著名的银器品牌
2020/08/29 全球购物
夜大自我鉴定
2013/10/31 职场文书
会计专业导师推荐信
2014/03/08 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
考试作弊检讨书范文
2015/01/27 职场文书
学生逃课万能检讨书2000字
2015/02/17 职场文书
上班旷工检讨书
2015/08/15 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书
python实现web邮箱扫描的示例(附源码)
2021/03/30 Python
Java常用函数式接口总结
2021/06/29 Java/Android