phprest/phprest-service-request-filter

Phprest 请求过滤器服务。

dev-master 2015-06-29 10:29 UTC

This package is not auto-updated.

Last update: 2024-09-14 15:48:33 UTC


README

Author Software License

描述

请求过滤器服务,能够通过

  • 查询
  • 排序
  • 限制
  • 偏移

组件

过滤中有3个主要组件

  • 获取器
  • 解析器
  • 处理器

获取器

这是从请求中获取过滤键及其数据的方式。

例如:QueryInHeader 获取器

解析器

这是分析获取到的过滤器的方式。

例如:CommaMinus 解析器

处理器

这是处理解析后的过滤器的。

例如:Orm 处理器

安装

通过 composer 安装。

{
    "require": {
        "phprest/phprest-service-request-filter": "@stable"
    }
}

提示:您应该浏览 phprest/phprest-service-request-filter 页面来选择要使用的稳定版本,避免使用 @stable 元数据约束。

使用

配置

对于配置,您应该检查 Config 类。

注册

<?php
use Phprest\Service\RequestFilter;
# ...
/** @var \Phprest\Application $app */

$app->registerService(new RequestFilter\Service(), new RequestFilter\Config());
# ...

从控制器访问

要从控制器访问您的服务,您应该使用服务的 Getter 特性。

<?php namespace App\Module\Controller;

use Phprest\Service;

class Index extends \Phprest\Util\Controller
{
    use Service\RequestFilter\Getter;

    public function get(Request $request)
    {
        $this->serviceRequestFilter()->processQuery(...);
    }
}

工具

Phprest 中的大多数服务都提供一些实用机制(辅助函数)。

对于工具,您应该检查 Util 类。

示例

使用 Orm 处理器。

<?php namespace App\Module\Controller;

use Phprest\Service;
use Doctrine\Common\Collections\Criteria;

class Index extends \Phprest\Util\Controller
{
    use Service\RequestFilter\Getter;
    use Service\RequestFilter\Util;

    public function getAll(Request $request)
    {
        $processor = new Service\RequestFilter\Processor\Orm(Criteria::create());
        
        try {
            $this->serviceRequestFilter()->processQuery($request, $processor);
            $this->serviceRequestFilter()->processSort($request, $processor);
        } catch (\Exception $e) {
            throw new Exception\BadRequest(0, [$e->getMessage()]);
        }
    }
}