spomky-labs/role-hierarchy-bundle

此包已被废弃,不再维护。未建议替代包。

Symfony2 角色层次结构包

安装: 817

依赖项: 0

建议者: 0

安全: 0

星级: 9

关注者: 3

分支: 2

开放问题: 1

类型:symfony-bundle

v3.0.0 2016-05-13 19:24 UTC

README

Scrutinizer Quality Score Build Status HHVM Status

SensioLabsInsight

Latest Stable Version Total Downloads Latest Unstable Version License

先决条件

此版本的包需要

  • Symfony 2.8 或 3.0+
  • PHP 5.6+

该包已成功在 PHP 5.6PHP 7.0 以及 HHVM 下,使用 Symfony 2.83.0 进行测试。

安装

安装是一个快速的四步过程

  • 安装包
  • 启用包
  • 创建模型类
  • 配置包

##步骤 1:安装包##

安装此包的首选方式是依赖 Composer

composer require spomky-labs/role-hierarchy-bundle

##步骤 2:启用包##

最后,在内核中启用包

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new SpomkyLabs\RoleHierarchyBundle\SpomkyLabsRoleHierarchyBundle(),
    );
}

##步骤 3:创建模型类##

此包需要将角色持久化到数据库

因此,您的首要任务是创建一个适用于应用程序的角色类。这个类可以看起来和表现成任何您想要的样子:添加任何您认为有用的属性或方法。

只有一些要求

  • 它们必须确保角色名称是唯一的
  • 它们应遵循命名约定

在下面的章节中,您将看到您的类应该如何看起来。

您的类可以位于应用程序中的任何包内。例如,如果您在“Acme”公司工作,那么您可能创建一个名为AcmeRoleBundle的包,并将您的类放在其中。

此包能够支持 Doctrine ORM、ODM、CouchDB 或 MongoDB。请注意,只有 ORM 已经过测试。

###Doctrine ORM###

如果您通过 Doctrine ORM 持久化数据,那么您的类应位于包的 Entity 命名空间中,并从以下样子开始

<?php
// src/Acme/RoleBundle/Entity/Role.php

namespace Acme\RoleBundle\Entity;

use SpomkyLabs\RoleHierarchyBundle\Entity\Role as Base;
use Doctrine\ORM\Mapping as ORM;

/**
 * Role
 *
 * @ORM\Table(name="roles")
 * @ORM\Entity()
 */
class Role extends Base
{
    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\ManyToOne(targetEntity="Role")
     * @ORM\JoinColumn(name="parent_id", referencedColumnName="id")
     **/
    protected $parent;

    public function getId() {
        return $this->id;
    }
}

###Doctrine ODM###

待编写

###Couch DB###

待编写

###Mongo DB###

待编写

##步骤 4:配置您的应用程序##

# app/config/config.yml
spomkylabs_role_hierarchy:
    role_class: "Acme\RoleBundle\Entity\Role"

如果您有自己的角色管理器,可以使用它。它只需要实现 SpomkyLabs\RoleHierarchyBundle\Model\RoleManagerInterface

# app/config/config.yml
spomkylabs_role_hierarchy:
    ...
    role_manager: "my.custom.role.manager"