skrip42/avatar-bundle

Symfony 头像组件

安装: 18

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:symfony-bundle

v1.0.1 2021-01-18 10:38 UTC

This package is auto-updated.

Last update: 2024-09-18 18:23:55 UTC


README

symfony 的头像生成器

安装

  • 运行 composer require skrip42/avatar-bundle

基本用法

在您的用户类中实现 Skrip42\Bundle\AvatarBundle\UserInterface 接口

....
use Symfony\Component\Security\Core\User\UserInterface;
use Skrip42\Bundle\AvatarBundle\UserInterface as AvataredUserInterface;

class User implements UserInterface, AvataredUserInterface
{
    public function getUsername() : string
    {
        ...
    }
    public function getLastName() : ?string
    {
        ...
    }
    public function getFirstName() : ?string
    {
        ...
    }
    public function getPatronymicName() : ?string
    {
        ...
    }
    public function getAvatar() : ?string
    {
        ...
    }
    .....
}

在 twig 模板中调用 skrip42_avatar(user) 函数

    ....
    {{ skrip42_avatar(app.user) }}
    ....

配置

创建 config/packages/avatar.yaml 文件

avatar:
  color_generator:
    saturation: 0.9 #saturation of generated avatar
    lightness: 0.7  #lightness of generated avatar
    algo: 'fnv132'  #hash alogorithm for avatar generation

自定义

自定义基础模板

    {# create new file: templates/bundles/AvatarBundle/avatar.html.twig#}
    {% block avatar %}
        ...
        <img src = "{% block avatar_src %}{% endblock %}" ... ">
        ...
    {% endblock %}

自定义生成的头像模板

    {# create new file: templates/bundles/AvatarBundle/generatedAvatar.svg.twig#}
    ......
    {# use 'color' and 'label' variable to generate avatar image #}

自定义头像生成

创建自定义头像生成器

namespace App\Utils;

use Skrip42\Bundle\AvatarBundle\AvatarGeneratorInterface;
use Skrip42\Bundle\AvatarBundle\UserInterface;

class AvatarGenerator implements AvatarGeneratorInterface
{
    public function getAvatar(UserInterface $user) : string
    {
        ....
    }
}

并重新声明 AvatarGenerator 类

    Skrip42\Bundle\AvatarBundle\AvatarGeneratorInterface: 'App\Utils\AvatarGenerator'