field-interactive / user-bundle
Symfony FieldUserBundle
Requires
- php: ^5.5.9 || ^7.0
- symfony/symfony: ^2.8
This package is not auto-updated.
Last update: 2024-09-28 00:29:31 UTC
README
FieldUserBundle 通过数据库支持的系统扩展了 Symfony 框架。
它提供了一个灵活的框架,包括常用用户系统的基本功能以及用户管理,如重置密码或禁用用户。
FieldUserBundle 包含以下功能
- 新用户注册
- 现有用户注册
- 重置密码的可能性
- 可编辑的用户资料
- 角色层次结构
- 受限用户管理
- 通过 Doctrine ORM 在 MySQL 数据库中存储数据
安装
安装过程分为7个步骤
- 使用 Composer 下载 FieldUserBundle
- 激活组件
- 创建自己的用户类
- 配置 security.yml
- 配置 FieldUserBundle,导入 FieldUserBundle 路由,更新数据库模式
步骤1:下载组件
打开命令行,进入您的项目目录并执行
$ composer require field/user-bundle "~1.0"
Composer 将自动在项目目录下的 vendor/field/user-bundle 下安装组件。
步骤2:启用组件
然后,通过将其添加到项目中 app/AppKernel.php 文件中注册的组件列表中,启用该组件
<?php
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new Field\UserBundle\FieldUserBundle(),
// ...
);
}
步骤3:创建自己的用户类
为了使组件能够在数据库中存储用户数据,必须在项目中实现自己的用户类,基于抽象类 Field\UserBundle\Entity\User
。
在您的用户类中,您可以按需添加额外的属性和方法到用户。
基本实现可能如下所示
<?php
// src/AppBundle/Entity/User.php
namespace AppBundle\Entity;
use Field\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="field_user")
*/
class User extends BaseUser
{
/**
* @var int
*
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
public function __construct()
{
parent::__construct();
// Your own logic
}
/**
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* @param int $id
*/
public function setId($id)
{
$this->id = $id;
}
}
步骤4:配置 security.yml
要将 FieldUserBundles 的安全标准添加到您的 Symfony 应用程序中,您必须根据项目配置修改您的 security.yml。
以下代码示例中提供了一个最小示例
# app/config/security.yml
security:
encoders:
Field\UserBundle\Entity\User:
algorithm: bcrypt
cost: 13
providers:
db_provider:
entity:
class: AppBundle:User
property: email
in_memory:
memory: ~
role_hierarchy:
ROLE_ADMIN: ROLE_USER
firewalls:
main:
anonymous: ~
provider: db_provider
form_login:
login_path: login
check_path: login
default_target_path: /profile
logout: true
remember_me:
secret: '%secret%'
lifetime: 604800
path: /profile
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
步骤5:配置 FieldUserBundle
现在您已经创建了您的用户类并修改了 security.yml,是时候告诉您的项目配置使用用户类了。
您只需将以下参数添加到您的 config.yml 中
# app/config/config.yml
parameters:
user_class: 'AppBundle\Entity\User'
步骤6:导入 FieldUserBundle 路由
为了能够使用新获得的函数,您应该将 FieldUserBundles 的路由注解导入到您的 routing.yml 中。
# app/config/routing.yml
field_user:
resource: "@FieldUserBundle/Controller/"
type: annotation
logout:
path: /logout
步骤7:更新数据库模式
最后,您需要将数据库更新到最新版本并扩展新的用户类。
感谢 Doctrine,您可以使用以下命令完成此操作
$ php bin/console doctrine:schema:update --force
如果您的项目使用 Symfony 2.x 结构,请使用 app/console
而不是 bin/console
来替换命令中的 bin/console
。
通过此最后步骤,您应该已成功将 FieldUserBundle 安装到您的应用程序中。
许可协议
此组件受 MIT 许可协议的约束。完整的许可协议可以在以下位置查看:此处。