gl3n/http-query-string-filter-bundle

该软件包最新版本(1.0.1)没有提供许可证信息。

HTTP查询字符串参数的简单验证、转换和授权

安装数: 8,182

依赖者: 0

建议者: 0

安全性: 0

星级: 5

关注者: 2

分支: 1

开放问题: 0

类型:symfony-bundle

1.0.1 2016-03-08 14:59 UTC

This package is not auto-updated.

Last update: 2024-09-23 14:49:35 UTC


README

简单 验证转换授权 HTTP查询字符串参数。

1. 安装

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

$bundles = array(
    // ...
    new Gl3n\HttpQueryStringFilterBundle\Gl3nHttpQueryStringFilterBundle(),
);

2. 配置

以下是一个示例过滤器配置

gl3n_http_query_string_filter:
    filters:
        list:
            params:
                size: { type: string, reg_exp: '^s|m|l$', default: 's' }
        blog_post_list:
            include: [list]
            params:
                userId:  { type: integer }
                isDraft: { type: boolean, roles: [ROLE_ADMIN] }
                tagIds:  { type: integer, array: true, default: '[]' }

过滤器有参数(params 节点)。它还可以包含其他过滤器的参数(include 节点)。

2.1. 参数配置

每个参数配置有6个选项

参数类型

定义

参数类型定义

  1. 如何将 (或配置为数组的参数的 )进行 转换
  2. 默认正则表达式。
参考

数组参数的默认值

在此特殊情况下,默认值通过Symfony 表达式语言 组件进行评估。然后如果结果是数组:每个值根据配置的参数类型进行转换。

您可以在上面的示例配置中看到这种情况的示例。

3. 使用

通过 注解 在操作中添加查询字符串过滤器

use Gl3n\HttpQueryStringFilterBundle\Annotation\HttpQueryStringFilter;
// ...

class BlogPostController
{
    /**
     * @HttpQueryStringFilter(name="blog_post_list")
     */
    public function listAction(Request $request)
    {
        // Now your request query is filtered
        $parameters = $request->query->all();
    }
}

4. 如何编写自定义参数类型

您的参数类型类必须实现 ParameterType\ParameterTypeInterface 并包含2个方法

  1. castValue($value)
  2. getDefaultRegExp()

然后将其声明为服务,并添加标签 gl3n_http_query_string_filter.parameter_type 并设置属性 type

以下是一个XML声明的示例

<service
    id="gl3n_http_query_string_filter.parameter_type.boolean"
    class="Gl3n\HttpQueryStringFilterBundle\ParameterType\BooleanParameterType"
>
    <tag name="gl3n_http_query_string_filter.parameter_type" type="boolean"/>
</service>