gl3n/serialization-group-bundle

本包的最新版本(1.0.1)没有提供许可信息。

通过配置组织序列化组的方式

1.0.1 2016-03-08 09:36 UTC

This package is not auto-updated.

Last update: 2024-09-23 14:21:40 UTC


README

SerializationGroupBundle 通过配置提供了一种 组织序列化组 的方法。

与 Symfony Serializer 组件或 JMS Serializer 一起使用很有用。

1. 安装

通过 composer 安装该包,然后将其添加到您的 AppKernel.php 文件中

$bundles = array(
    // ...
    new Gl3n\SerializationGroupBundle\Gl3nSerializationGroupBundle(),
);

2. 配置

以下是一个示例配置

gl3n_serialization_group:
    groups:
        group2:
            roles: [ROLE_USER]
        group3:
            roles: [ROLE_ADMIN]
            include: [group2]
        group4:
            roles: [ROLE_SUPER_ADMIN]
            include: [group1, group3]

您可以在每个组中填写内容

  • roles (可选):允许使用此组的安全角色的数组
  • include (可选):包含的组的数组

3. 使用

调用 序列化组解析器gl3n_serialization_group.resolver)以获取构建的组列表。

例如,使用前面的示例配置

// Resolving group1 returns ['group1']
$groups = $resolver->resolve('group1');

// Resolving group3 returns ['group2', 'group3']
$groups = $resolver->resolve('group3');

// Resolving group4 returns ['group1', 'group2', 'group3', 'group4']
$groups = $resolver->resolve('group4');

3.1. 授权检查器

在解析过程中检查安全角色。如果用户没有所需的角色,则会抛出 Symfony\Component\Security\Core\Exception\AccessDeniedException

3.2. 示例

您可以通过 大小(小、中、大)来组织实体序列化组,并一次序列化多个实体,如下所示

# config.yml
gl3n_serialization_group:
    groups:
        book_M:
            roles: [ROLE_USER]
            include: [book_S, author_S]
        book_L:
            roles: [ROLE_ADMIN]
            include: [book_M, author_M]
        author_M:
            include: [author_S]

在这个例子中,一本 有一个或多个 作者