appaydin / pd-user
Symfony Simple User Bundle
3.0.4
2021-06-03 21:35 UTC
Requires
- php: >=8.0.0
- symfony/event-dispatcher: *
- symfony/mailer: *
- twig/twig: *
README
Symfony 5+ 的简单用户管理系统。
安装
步骤 1: 下载包
打开命令行界面,进入项目目录,执行以下命令以下载此包的最新稳定版本
$ composer require appaydin/pd-user
此命令需要您全局安装 Composer,如 Composer 文档中的安装章节所述。
步骤 2: 启用包
在 Symfony 5 中,包将自动启用。但如果出现问题,您可以手动安装。
然后,通过将其添加到项目 config/bundles.php
文件中注册的包列表中来启用该包
<?php // config/bundles.php return [ //... Pd\UserBundle\PdUserBundle::class => ['all' => true] ];
步骤 3: 创建用户、组、类
A) 创建用户类
为您的应用程序创建用户类。这个类可以看起来和表现成任何样子:添加任何您认为有用的属性或方法。这是您的用户类。
<?php // src/Entity/User.php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Pd\UserBundle\Model\User as BaseUser; /** * @ORM\Table(name="user") * @ORM\Entity * @UniqueEntity(fields="email", message="email_already_taken") */ class User extends BaseUser { public function __construct() { parent::__construct(); } }
B) 创建组类
为您的应用程序创建组类。这个类创建用户组。
<?php // src/Entity/Group.php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Pd\UserBundle\Model\Group as BaseGroup; /** * @ORM\Table(name="user_group") * @ORM\Entity * @UniqueEntity(fields="name", message="group_already_taken") */ class Group extends BaseGroup { }
步骤 4: 设置包
为设置创建一个 "user.yaml" 文件。
# config/packages/user.yaml pd_user: user_class: App\Entity\User group_class: App\Entity\Group default_group: '' login_redirect: 'web_home' email_confirmation: true welcome_email: true user_registration: true #template_path: '@Admin/Auth' resetting_request_time: 7200 mail_sender_address: 'example@example.com' mail_sender_name: 'pdUser' active_language: ['en', 'tr'] register_type: '' resetting_type: ''
- user_class: 定义 'User' 类地址
- group_class: 定义 'Group' 类地址
- default_group: 新成员将加入的组 ID
- login_redirect: 登录用户将被重定向的路由名称。
- email_confirmation: 启用注册时的电子邮件验证。
- welcome_email: 欢迎新成员的消息。
- user_registration: 启用/禁用用户注册。
- template_path: Twig 模板目录。可以通过复制源目录来更改。
- resetting_request_time: 输入密码更新重试时间的秒数。
- mail_sender_address: 邮件发送者地址
- mail_sender_name: 邮件发送者名称
- active_language: 活跃语言列表
- register_type: 注册表单类型
- resetting_type: 重置表单类型
####事件 UserEvent::REGISTER_BEFORE => 在注册表单之前启动。UserEvent::REGISTER => 记录完成后启动。UserEvent::REGISTER_CONFIRM => 注册确认时发送电子邮件。UserEvent::RESETTING => 发送重置邮件时启动密码。UserEvent::RESETTING_COMPLETE => 密码更改时启动。
步骤 5: 配置应用程序的 security.yml
以下是使用 pdUser 在您的应用程序中所需的最小配置示例
# config/packages/security.yaml security: enable_authenticator_manager: true password_hashers: App\Entity\User: algorithm: auto role_hierarchy: ROLE_ADMIN: [ROLE_USER] providers: pdadmin_auth: entity: class: App\Entity\User property: email firewalls: # Enable for Development dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false main: pattern: ^/ provider: pdadmin_auth lazy: true user_checker: Pd\UserBundle\Security\UserChecker switch_user: true http_basic: ~ entry_point: form_login form_login: use_referer: true login_path: security_login check_path: security_login #default_target_path: 'dashboard' # Login Redirect Path logout: path: security_logout #target: 'home' # Logout Redirect Path remember_me: secret: '%env(APP_SECRET)%' #lifetime: 604800 path: / access_control: - { path: ^/auth/login$, role: PUBLIC_ACCESS } - { path: ^/auth/register, role: PUBLIC_ACCESS } - { path: ^/auth/resetting, role: PUBLIC_ACCESS } #- { path: '^/', role: ROLE_ADMIN }
步骤 6: 导入 pdUser 路由
现在您已启用并配置了包,剩下的只是导入 pdUser 路由文件。
通过导入路由文件,您将拥有用于登录、注册、密码重置等内容的现成页面。
#config/routes.yaml authorization: resource: "@PdUserBundle/Resources/config/routing.yaml" prefix: 'auth'
步骤 6: 更新数据库模式
所有步骤均已完成。您现在可以更新数据库模式。
php bin/console doctrine:schema:update --force