maba/avatar-bundle

Symfony2 扩展包,用于获取和显示用户的头像

安装: 542

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 1

开放问题: 0

类型:symfony-bundle

0.1.0 2015-07-26 00:31 UTC

This package is auto-updated.

Last update: 2024-09-10 20:30:11 UTC


README

这是什么?

Symfony2 扩展包,用于根据给定的电子邮件获取头像图像。

它允许注册额外的头像提供者,以便选择最合适的头像。

它包括一个默认的头像提供者 - GravatarProvider

安装

composer require maba/avatar-bundle

AppKernel::registerBundles 内部

new Maba\Bundle\AvatarBundle\MabaAvatarBundle(),

配置

maba_avatar:
    default_uri: /assets/unknown.png    # defaults to ~
    default_size: 50
    gravatar:
        enabled: true
        secure: false
        force_default: false
        default: mm             # one of mm, 404, identicon, monsterid, wavatar, retro, blank
                                # ignored if default_uri is set
        rating: ~               # one of g, pg, r, x

添加头像提供者

  1. 创建一个实现 Maba\Bundle\AvatarBundle\Service\AvatarProviderInterface 的类。
  2. 将其注册为一个服务。
  3. 为此服务添加标签 maba_avatar.avatar_provider
  4. 可选地提供 priority 属性给该标签。数字越小,提供者被调用的优先级越高。GravatarProviderpriority9000,但总是返回 URI,因此您的优先级应该比这更小。如果没有提供,默认为 0

示例

namespace Acme;

use Maba\Bundle\AvatarBundle\Service\AvatarProviderInterface;

class MyAvatarProvider implements AvatarProviderInterface
{
    // ...
    
    public function getAvatar($email, $size)
    {
        $user = $this->repository->findOneByEmail($email);
        if ($user === null) {
            // we don't have avatar - other providers will by called by priority
            return null;
        }
        
        return $this->avatarPath . $user->getAvatar();
    }
    
    // ...
}
<service id="acme.my_avatar_provider" class="Acme\MyAvatarProvider">
    <tag name="maba_avatar.avatar_provider" priority="0"/>
    <!-- any other configuration -->
</service>

运行测试

Travis status Coverage Status

composer install
vendor/bin/phpunit