schvoy / user-bundle
用户包 - 此包提供基本用户实体和用户仓库。
v1.0.4
2024-09-15 22:33 UTC
Requires
- php: >=8.3
- schvoy/base-entity-bundle: ^1.0.0
- symfony/framework-bundle: ^7.1
- symfony/orm-pack: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.58
- phpunit/phpunit: ^11.1
- symfony/yaml: ^7.1
README
此包提供基本用户实体和用户仓库,可以立即使用,无需过多努力,只需几个简单的步骤。
然而,这些是可扩展的,你可以轻松添加额外的属性。
安装
composer require schvoy/user-bundle
使用
创建自己的 UserRepository
<?php declare(strict_types=1); namespace App\Repository; use App\Entity\User; use Doctrine\Persistence\ManagerRegistry; use Schvoy\UserBundle\Repository\UserRepository as BaseUserRepository; class UserRepository extends BaseUserRepository { public function __construct(ManagerRegistry $registry) { parent::__construct($registry, User::class); } }
创建自己的 User
实体
<?php namespace App\Entity; use App\Repository\UserRepository; use Doctrine\ORM\Mapping as ORM; use Schvoy\UserBundle\Entity\User as BaseUser; #[ORM\Entity(repositoryClass: UserRepository::class)] #[ORM\Table(name: 'users')] class User extends BaseUser { }
security.yaml
security: password_hashers: App\Entity\User: algorithm: argon2i providers: app_user_provider: entity: class: App\Entity\User property: email [...]
doctrine.yaml
doctrine: orm: resolve_target_entities: Symfony\Component\Security\Core\User\UserInterface: <your-fqcdn-for-your-user-entity-class> [...]
事件订阅者
Schvoy\UserBundle\EventSubscriber\PasswordHashingDoctrineEventSubscriber
在创建新用户实体或更新(如果密码已更改)时自动哈希明文密码。
在某些情况下,你可能不需要这种行为,可以使用以下代码禁用它
PasswordHashingDoctrineEventSubscriber::setEnabled(false);
之后,你可以重新启用它
PasswordHashingDoctrineEventSubscriber::setEnabled(true);
配置参考
此包目前不允许额外的配置。