定制 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

统计信息

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

GitHub 信息

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

其他信息

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

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固