gl3n / http-query-string-filter-bundle
该软件包最新版本(1.0.1)没有提供许可证信息。
HTTP查询字符串参数的简单验证、转换和授权
1.0.1
2016-03-08 14:59 UTC
Requires
- php: >=5.4
- symfony/symfony: ~2.4|~3.0
Requires (Dev)
- atoum/atoum: @stable
- phpspec/prophecy: ~1.0
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个选项
参数类型
定义
参数类型定义
- 如何将 值(或配置为数组的参数的 值)进行 转换,
- 默认正则表达式。
参考
数组参数的默认值
在此特殊情况下,默认值通过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个方法
castValue($value)
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>