plume-solution / user-bundle
一个用于轻松管理用户的全新组件
1.1.1
2021-12-15 16:45 UTC
Requires
- php: ^7.4 | ^8.0
- doctrine/doctrine-bundle: ^2.0
- symfony/form: ^4.4 | ^5.0
- symfony/framework-bundle: >=4.4
- symfony/security-bundle: ^4.4 | ^5.0
Requires (Dev)
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.5
Suggests
- symfony/twig-bundle: For view support of user system
This package is auto-updated.
Last update: 2024-09-18 06:45:41 UTC
README
一个用于轻松管理用户的简单组件
安装
首先,请确保您已安装php 7.4或8.0以及Symfony 4.4或5.x(对于5.x版本的安全问题,内核版本为5.1.5)。
您可以使用composer轻松安装,如下所示
composer require plume-solution/user-bundle
用法
用户实体
创建一个扩展 PlumeSolution\UserBundle\Models\BaseUser
的实体(或使用现有的实体)。
之后,您可以选择一个Trait来为您的用户添加一些基本字段。
一次性Trait
- EmailAndNicknamePasswordTrait : 支持拥有电子邮件和用户名(称为昵称)的用户
- EmailPasswordTrait : 用于没有昵称(用户名是电子邮件)的用户登录(您可以为添加未用于登录系统的昵称添加 NicknameTrait)。
- NicknamePasswordTrait : 用于使用用户名登录且不使用电子邮件的用户。
登录用法,请参阅登录部分。
未来可能还有更多功能 😄
用户操作
对于用户操作,您可以使用 PlumeSolution\UserBundle\Manager\UserManager
服务。
是自动装配的,只需在控制器动作或服务构造函数中注入即可。
注入后,您可以查阅PHP文档以了解用法(非常基础 😄)。
用户登录
此组件提供了一个您可以在应用程序代码中继承的控制器
只需创建一个使用 PlumeSolution\UserBundle\Controllers
的类。
该控制器是可覆盖的,您可以根据需要自定义多个内部动作。
__invoke(Request $request)
: 此方法是由路由器调用的动作,您必须通过父调用覆盖以使用注释。redirectIfAlreadyLogged()
: 如果用户已经完全认证,则用于将用户重定向到路由。getLoginForm()
: 用于构建LoginForm,默认情况下,它使用PlumeSolution\UserBundle\Form\LoginType
并包含登录所需的最小信息。renderTemplate(FormInterface $form)
: 用于带有表单的渲染模板。
用户登录配置
使用此示例进行 security.yaml 并根据需要调整
security: encoders: App\Entity\User: algorithm: auto # https://symfony.com.cn/doc/current/security.html#where-do-users-come-from-user-providers providers: users: entity: # the class of the entity that represents users class: 'App\Entity\User' # the property to query by - e.g. username, email, etc property: 'nickname' firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false main: anonymous: ~ form_login: login_path: login check_path: login default_target_path: index failure_path: login always_use_default_target_path: true username_parameter: "login[username]" password_parameter: "login[password]" remember_me: secret: '%kernel.secret%' lifetime: 604800 # 1 week in seconds path: login remember_me_parameter: 'login[remember]'
支持
感谢您使用我们的产品! 😄
如果您想通过代码和/或想法进行贡献,请不要犹豫,提出问题或PR!