field-interactive/user-bundle

Symfony FieldUserBundle

安装: 11

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 3

分支: 0

公开问题: 0

类型:symfony-bundle

dev-master 2018-09-06 13:18 UTC

This package is not auto-updated.

Last update: 2024-09-28 00:29:31 UTC


README

FieldUserBundle 通过数据库支持的系统扩展了 Symfony 框架。

它提供了一个灵活的框架,包括常用用户系统的基本功能以及用户管理,如重置密码或禁用用户。

FieldUserBundle 包含以下功能

  • 新用户注册
  • 现有用户注册
  • 重置密码的可能性
  • 可编辑的用户资料
  • 角色层次结构
  • 受限用户管理
  • 通过 Doctrine ORM 在 MySQL 数据库中存储数据

安装

安装过程分为7个步骤

  1. 使用 Composer 下载 FieldUserBundle
  2. 激活组件
  3. 创建自己的用户类
  4. 配置 security.yml
  5. 配置 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 许可协议的约束。完整的许可协议可以在以下位置查看:此处

关于我们

我们是Field Interactive