skrip42 / avatar-bundle
Symfony 头像组件
v1.0.1
2021-01-18 10:38 UTC
Requires
- php: ^7.1
- skrip42/color: ^1.0
- symfony/config: ^4.2|^5.0
- symfony/dependency-injection: ^4.1|^5.0
- symfony/http-kernel: ^4.3|^5.0
- twig/twig: ^2.12|^3.0
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'