承接 nerd4ever/url-query 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

nerd4ever/url-query

Composer 安装命令:

composer require nerd4ever/url-query

包简介

A library to extract parameters to filter and sort

README 文档

README

A library to extract parameters to filter and sort.

codecov GitHub license GitHub issues Minimum PHP Version

Installation

composer require nerd4ever/url-query

Supported operators

Operators used in filters and your syntax

  • ge value greater than or equals

ge.: test=between:3,5 (field => test, operator => between, start => 3, end => 5 )

  • le value less than or equals

eg.: test=le:3 (field => test, operator => le, value => 3)

  • ne value not equals

eg.: test=ne:3 (field => test, operator => ne, value => 3)

  • eq value equals

eg.: test=eq:3 (field => test, operator => eq, value => 3)

  • gt value greater than

eg.: test=gt:3 (field => test, operator => gt, value => 3)

  • lt value less than

eg.: test=lt:5 (field => test, operator => lt, value => 5)

  • regex value validate by regular expression

eg.: test=regex:[0-9] (field => test, operator => regex, values => [0-9])

  • in one or more possible values (separated by commas)

eg.: test=in:3,4,5 (field => test, operator => in, values => [3,4,5])

  • between values between start and end range (separated by commas).

eg.: test=between:3,5 (field => test, operator => between, start => 3, end => 5 )

  • contains value anywhere

eg.: test=contains:3 (field => test, operator => contains, value => 3)

  • start value at the beginning

eg.: test=start:3 (field => test, operator => start, value => 3)

  • finish value at the end

eg.: test=finish:3 (field => test, operator => finish, value => 3)

  • nil value null

eg.: test=nil: (field => test, operator => nil)

Sorter syntax

http://sandbox.nerd4ever.com.br/url-query?_orders=data1:asc&data2:desc&data3
  • test:asc (field => test, type=> asc)
  • test:desc (field => test, type=> desc)
  • test (field => test, type=> asc)

Limit syntax

http://sandbox.nerd4ever.com.br/url-query?_limit=10
  • _limit=10 (property => _limit, value=> 10)

Offset syntax

http://sandbox.nerd4ever.com.br/url-query?_limt=10&_offset=1
  • _limit=10 (property => _limit, value=> 10)
  • _offset=1 (property => __offset, value=> 1)

QueryString example

http://sandbox.nerd4ever.com.br/url-query?data0=3&data1=ge:3&data2=le:3&data3=ne:3&data4=eq:3&data5=gt:3&data6=lt:3&data7=regex:[0-9]&data8=in:3,4,5&data9=between:3,5&data10=contains:3&data11=start:3&data12=finish:5&data13=nil:&_orders=data1:asc,data2:desc,data3

Usage

use Nerd4ever\UrlQuery\Model\UrlQuery;

$urlQuery = new UrlQuery();
$urlQuery->parser($_SERVER['QUERY_STRING']);

Output example For var_export($urlQuery, true) from code above, using the QUERY_STRING ?data0=3&data1=ge:3&data2=le:3&data3=ne:3&data4=eq:3&data5=gt:3&data6=lt:3&data7=regex:[0-9]&data8=in:3,4,5&data9=between:3,5&data10=contains:3&data11=start:3&data12=finish:5&data13=nil:&_orders=data1:asc,data2:desc,data3

Nerd4ever\UrlQuery\Model\UrlQuery::__set_state(array(
   'reservedSortField' => '_orders',
   'filters' => 
  array (
    0 => 
    Nerd4ever\UrlQuery\Model\CriteriaEquals::__set_state(array(
       'value' => '3',
       'field' => 'data0',
    )),
    1 => 
    Nerd4ever\UrlQuery\Model\CriteriaGreaterThanOrEquals::__set_state(array(
       'value' => '3',
       'field' => 'data1',
    )),
    2 => 
    Nerd4ever\UrlQuery\Model\CriteriaLessThanOrEquals::__set_state(array(
       'value' => '3',
       'field' => 'data2',
    )),
    3 => 
    Nerd4ever\UrlQuery\Model\CriteriaNotEquals::__set_state(array(
       'field' => 'data3',
       'value' => '3',
    )),
    4 => 
    Nerd4ever\UrlQuery\Model\CriteriaEquals::__set_state(array(
       'value' => '3',
       'field' => 'data4',
    )),
    5 => 
    Nerd4ever\UrlQuery\Model\CriteriaGreaterThan::__set_state(array(
       'value' => '3',
       'field' => 'data5',
    )),
    6 => 
    Nerd4ever\UrlQuery\Model\CriteriaLessThan::__set_state(array(
       'value' => '3',
       'field' => 'data6',
    )),
    7 => 
    Nerd4ever\UrlQuery\Model\CriteriaRegex::__set_state(array(
       'value' => '[0-9]',
       'field' => 'data7',
    )),
    8 => 
    Nerd4ever\UrlQuery\Model\CriteriaIn::__set_state(array(
       'values' => 
      array (
        0 => '3',
        1 => '4',
        2 => '5',
      ),
       'field' => 'data8',
    )),
    9 => 
    Nerd4ever\UrlQuery\Model\CriteriaBetween::__set_state(array(
       'start' => '3',
       'end' => '5',
       'field' => 'data9',
    )),
    10 => 
    Nerd4ever\UrlQuery\Model\CriteriaContains::__set_state(array(
       'value' => '3',
       'field' => 'data10',
    )),
    11 => 
    Nerd4ever\UrlQuery\Model\CriteriaStart::__set_state(array(
       'value' => '3',
       'field' => 'data11',
    )),
    12 => 
    Nerd4ever\UrlQuery\Model\CriteriaFinish::__set_state(array(
       'value' => '5',
       'field' => 'data12',
    )),
    13 => 
    Nerd4ever\UrlQuery\Model\CriteriaNil::__set_state(array(
       'field' => 'data13',
    )),
  ),
   'sorters' => 
  array (
    0 => 
    Nerd4ever\UrlQuery\Model\Sorter::__set_state(array(
       'type' => 'asc',
       'field' => 'data1',
    )),
    1 => 
    Nerd4ever\UrlQuery\Model\Sorter::__set_state(array(
       'type' => 'desc',
       'field' => 'data2',
    )),
    2 => 
    Nerd4ever\UrlQuery\Model\Sorter::__set_state(array(
       'type' => 'asc',
       'field' => 'data3',
    )),
  ),
));

Nerd4ever Official Home

nerd4ever/url-query 适用场景与选型建议

nerd4ever/url-query 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 452 次下载、GitHub Stars 达 0, 最近一次更新时间为 2020 年 06 月 10 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「php」 「rest」 「filter」 「sort」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 nerd4ever/url-query 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 nerd4ever/url-query 我们能提供哪些服务?
定制开发 / 二次开发

基于 nerd4ever/url-query 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 452
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 5
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-3.0-or-later
  • 更新时间: 2020-06-10