maba / avatar-bundle
Symfony2 扩展包,用于获取和显示用户的头像
0.1.0
2015-07-26 00:31 UTC
Requires
- php: >=5.3.2
- maba/dependency-injection-extra: ^0.1
- symfony/framework-bundle: ^2.3
Requires (Dev)
- phpunit/phpunit: ~4.0
- symfony/browser-kit: 2.3
- symfony/filesystem: 2.3
- symfony/twig-bundle: ^2.3
Suggests
- symfony/twig-bundle: ^2.3
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
添加头像提供者
- 创建一个实现
Maba\Bundle\AvatarBundle\Service\AvatarProviderInterface
的类。 - 将其注册为一个服务。
- 为此服务添加标签
maba_avatar.avatar_provider
。 - 可选地提供
priority
属性给该标签。数字越小,提供者被调用的优先级越高。GravatarProvider
的priority
是9000
,但总是返回 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>
运行测试
composer install vendor/bin/phpunit