Olá, tudo bem?!

Um serviço muito bacana é o Gravatar, onde você pode vincular uma imagem ao e-mail desejado e com isso ao comentar em um blog ou serviço que disponibiliza o recurso o mesmo exibirá automaticamente a imagem configurada.

E para manipular o serviço com maior facilidade construí uma biblioteca para executar esta tarefa, vamos ao seu uso!

Para isso vamos criar a estrutura do nosso projeto, crie um diretório com o seguinte nome ‘post-imagem-gravatar’.

Após a criação do diretório devemos entrar no mesmo (via terminal) e executar o seguinte comando para instalar o pacote:

1
composer require diego-brocanelli/image-gravatar-php dev-master

Ao finalizar o processo de instalação, teremos a seguinte estrutura:

  • post-imagem-gravatar
    • composet.json
    • composer.lock
    • vendor

Para darmos início ao nosso exemplo vamos criar nosso index.php e configura-lo conforme demonstrado abaixo:

1
2
3
4
5
<?php

require_once __DIR__.'/vendor/autoload.php';

use DiegoBrocanelli\Gravatar\Image;

Basicamente até este momento importamos o autoload do composer e declaramos o uso do componente Image, responsável por nos fornecer os recursos para manipular o serviço do Gravatar.

Temos duas possibilidades de uso sendo elas:

  • Retornar apenas a URL da imagem.
  • Retornar uma tag img configurada com a URL.

Retornando apenas a URL

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<?php

require_once __DIR__.'/vendor/autoload.php';

use DiegoBrocanelli\Gravatar\Image;

$email = 'hackershousebr@gmail.com';

$gravatar = new Image($email);

$url = $gravatar->buildURL();

Ao instanciarmos nossa classe Image, devemos informar qual e-mail configurado no Gravatar desejamos pesquisar.

Por últimos fazemos uso do método buildURL() para que o mesmo monte e retorne nossa URL desejada, como retorno obtemos o seguinte valor:

1
https://www.gravatar.com/avatar/dfeea822891ef9e6df82ec9f4a74cf8d?s=80&d=mm&r=g

Podemos notar, nossa URL contém parâmetros de configuração que são passados ao Gravatar e esses valores são padrões, porem podemos modificá-los e logo mais veremos como fazer isso 🙂

Retornando a tag img

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<?php

require_once __DIR__.'/vendor/autoload.php';

use DiegoBrocanelli\Gravatar\Image;

$email = 'hackershousebr@gmail.com';
$gravatar = new Image($email);

$image = $gravatar->buildImage();

Para obter a_ tag img_ o uso é praticamente idêntico o que difere é que chamamos o método buildImage() e como retorno temos uma tag pré configurada para uso.

1
<img src='https://www.gravatar.com/avatar/dfeea822891ef9e6df82ec9f4a74cf8d?s=80&d=mm&r=g'/>

Com poucas linhas de código podemos obter a imagem configurada no Gravatar e podemos inserir em nossas aplicações, facilitando o uso de imagens e centralizando as informações.

Agora vamos descrever as possíveis configurações:

Image Size

Temos a disposição as seguintes opções [ 404 | mm | identicon | monsterid | wavatar ] por padrão é utilizada ‘mm’.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<?php

require_once __DIR__.'/vendor/autoload.php';

use DiegoBrocanelli\Gravatar\Image;

$email = 'hackershousebr@gmail.com';
$gravatar = new Image($email);

$gravatar->setImageSize(200); // return image 200px

Image Set

Temos a disposição as seguintes opções [ 404 | mm | identicon | monsterid | wavatar ] por padrão é utilizada ‘mm’.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<?php

require_once __DIR__.'/vendor/autoload.php';

use DiegoBrocanelli\Gravatar\Image;

$email = 'hackershousebr@gmail.com';
$gravatar = new Image($email);

$gravatar->setImageSet('wavatar');\

Maximum rating

Temos a disposição as seguintes opções [ g | pg | r | x ] por padrão é utilizada ‘g’.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<?php

require_once __DIR__.'/vendor/autoload.php';

use DiegoBrocanelli\Gravatar\Image;

$email = 'hackershousebr@gmail.com';
$gravatar = new Image($email);

$gravatar->setMaxRating('pg');

Image options

Podemos incluir atributos em nossa imagem, facilitando assim seu uso, no exemplo abaixo é inserido a classe CSS ‘image-gravatar’.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<?php

require_once __DIR__.'/vendor/autoload.php';

use DiegoBrocanelli\Gravatar\Image;

$email = 'hackershousebr@gmail.com';
$gravatar = new Image($email);

$gravatar->setImageOptions(array('class' => 'image-gravatar'));

$gravatar->buildImage();

Todas as configurações listadas acima refletem as configurações realizadas no serviço Gravatar, com isso caso você deseje retornar uma imagem com rating ‘pg’ porem o mesmo não tenha sido configurado no Gravatar o mesmo retornará o default ‘g’. Isso para todas as outras configurações listadas acima.

Caso tenha interesse e gostaria de acessar o componente que utilizamos ele está hospedado no GitHub image-gravatar-php, sempre será bem vindo críticas, sugestões, PR e elogios 🙂

Espero que tenham apreciado o post e que o componente facilite seu dia a dia, até a próxima abraços.