Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
bingo
ApiQL
Commits
77dbb450
Commit
77dbb450
authored
5 years ago
by
Виктор Волков
Browse files
Options
Download
Email Patches
Plain Diff
feat: implement multiple similar parameters in one expression
parent
0ca35b9d
Changes
22
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
45 additions
and
17 deletions
+45
-17
src/Language/ApiQueryBuilder.php
src/Language/ApiQueryBuilder.php
+4
-0
src/Language/JsonField.php
src/Language/JsonField.php
+6
-0
src/Language/Specs/AbstractSpec.php
src/Language/Specs/AbstractSpec.php
+18
-0
src/Language/Specs/Between.php
src/Language/Specs/Between.php
+1
-1
src/Language/Specs/ContainsString.php
src/Language/Specs/ContainsString.php
+1
-1
src/Language/Specs/EndsWith.php
src/Language/Specs/EndsWith.php
+1
-1
src/Language/Specs/Equals.php
src/Language/Specs/Equals.php
+1
-1
src/Language/Specs/EqualsAny.php
src/Language/Specs/EqualsAny.php
+1
-1
src/Language/Specs/GreaterThan.php
src/Language/Specs/GreaterThan.php
+1
-1
src/Language/Specs/GreaterThanOrEqual.php
src/Language/Specs/GreaterThanOrEqual.php
+1
-1
src/Language/Specs/In.php
src/Language/Specs/In.php
+1
-1
src/Language/Specs/IsNotNull.php
src/Language/Specs/IsNotNull.php
+1
-1
src/Language/Specs/IsNull.php
src/Language/Specs/IsNull.php
+1
-1
src/Language/Specs/LessThan.php
src/Language/Specs/LessThan.php
+1
-1
src/Language/Specs/LessThanOrEqual.php
src/Language/Specs/LessThanOrEqual.php
+1
-1
src/Language/Specs/Like.php
src/Language/Specs/Like.php
+1
-1
src/Language/Specs/NotContainsString.php
src/Language/Specs/NotContainsString.php
+1
-1
src/Language/Specs/NotEquals.php
src/Language/Specs/NotEquals.php
+1
-1
src/Language/Specs/NotIn.php
src/Language/Specs/NotIn.php
+1
-1
src/Language/Specs/NotLike.php
src/Language/Specs/NotLike.php
+1
-1
No files found.
src/Language/ApiQueryBuilder.php
View file @
77dbb450
...
...
@@ -28,6 +28,8 @@ class ApiQueryBuilder
*/
private
$expression
;
private
static
$parameters
=
[];
/**
* Construct query builder
*
...
...
@@ -35,6 +37,7 @@ class ApiQueryBuilder
*/
public
function
__construct
(
QueryBuilder
$builder
)
{
self
::
$parameters
=
[];
$this
->
builder
=
$builder
;
$this
->
expression
=
$builder
->
expr
();
}
...
...
@@ -294,6 +297,7 @@ class ApiQueryBuilder
}
else
{
$spec
=
new
$specName
(
$data
);
}
$spec
->
reset
();
return
$spec
->
match
(
$this
->
builder
);
}
...
...
This diff is collapsed.
Click to expand it.
src/Language/JsonField.php
View file @
77dbb450
...
...
@@ -67,6 +67,12 @@ trait JsonField
if
(
is_array
(
$value
)
&&
array_key_first
(
$value
)
!==
0
)
{
$field
=
$field
.
'_'
.
array_key_first
(
$value
)
.
'_'
;
}
if
(
array_key_exists
(
$field
,
self
::
$parameters
))
{
self
::
$parameters
[
$field
]
+=
1
;
$field
.
=
self
::
$parameters
[
$field
];
}
else
{
self
::
$parameters
[
$field
]
=
0
;
}
return
$this
->
transliterate
(
$field
);
}
...
...
This diff is collapsed.
Click to expand it.
src/Language/Specs/AbstractSpec.php
0 → 100644
View file @
77dbb450
<?php
namespace
ApiQL\Language\Specs
;
/**
* Class AbstractSpec
*
* @package ApiQL\Language\Specs
*/
abstract
class
AbstractSpec
{
protected
static
$parameters
=
[];
public
function
reset
():
void
{
self
::
$parameters
=
[];
}
}
This diff is collapsed.
Click to expand it.
src/Language/Specs/Between.php
View file @
77dbb450
...
...
@@ -11,7 +11,7 @@ use ApiQL\Language\JsonField;
*
* @package ApiQL\Language\Specs
*/
class
Between
class
Between
extends
AbstractSpec
{
use
JsonField
;
...
...
This diff is collapsed.
Click to expand it.
src/Language/Specs/ContainsString.php
View file @
77dbb450
...
...
@@ -10,7 +10,7 @@ use ApiQL\Language\JsonField;
*
* @package ApiQL\Language\Specs
*/
class
ContainsString
class
ContainsString
extends
AbstractSpec
{
use
JsonField
;
...
...
This diff is collapsed.
Click to expand it.
src/Language/Specs/EndsWith.php
View file @
77dbb450
...
...
@@ -10,7 +10,7 @@ use ApiQL\Language\JsonField;
*
* @package ApiQL\Language\Specs
*/
class
EndsWith
class
EndsWith
extends
AbstractSpec
{
use
JsonField
;
...
...
This diff is collapsed.
Click to expand it.
src/Language/Specs/Equals.php
View file @
77dbb450
...
...
@@ -10,7 +10,7 @@ use ApiQL\Language\JsonField;
*
* @package ApiQL\Language\Specs
*/
class
Equals
class
Equals
extends
AbstractSpec
{
use
JsonField
;
...
...
This diff is collapsed.
Click to expand it.
src/Language/Specs/EqualsAny.php
View file @
77dbb450
...
...
@@ -10,7 +10,7 @@ use ApiQL\Language\JsonField;
*
* @package ApiQL\Language\Specs
*/
class
EqualsAny
class
EqualsAny
extends
AbstractSpec
{
use
JsonField
;
...
...
This diff is collapsed.
Click to expand it.
src/Language/Specs/GreaterThan.php
View file @
77dbb450
...
...
@@ -10,7 +10,7 @@ use ApiQL\Language\JsonField;
*
* @package ApiQL\Language\Specs
*/
class
GreaterThan
class
GreaterThan
extends
AbstractSpec
{
use
JsonField
;
...
...
This diff is collapsed.
Click to expand it.
src/Language/Specs/GreaterThanOrEqual.php
View file @
77dbb450
...
...
@@ -10,7 +10,7 @@ use ApiQL\Language\JsonField;
*
* @package ApiQL\Language\Specs
*/
class
GreaterThanOrEqual
class
GreaterThanOrEqual
extends
AbstractSpec
{
use
JsonField
;
...
...
This diff is collapsed.
Click to expand it.
src/Language/Specs/In.php
View file @
77dbb450
...
...
@@ -10,7 +10,7 @@ use ApiQL\Language\JsonField;
*
* @package ApiQL\Language\Specs
*/
class
In
class
In
extends
AbstractSpec
{
use
JsonField
;
...
...
This diff is collapsed.
Click to expand it.
src/Language/Specs/IsNotNull.php
View file @
77dbb450
...
...
@@ -10,7 +10,7 @@ use ApiQL\Language\JsonField;
*
* @package ApiQL\Language\Specs
*/
class
IsNotNull
class
IsNotNull
extends
AbstractSpec
{
use
JsonField
;
...
...
This diff is collapsed.
Click to expand it.
src/Language/Specs/IsNull.php
View file @
77dbb450
...
...
@@ -10,7 +10,7 @@ use ApiQL\Language\JsonField;
*
* @package ApiQL\Language\Specs
*/
class
IsNull
class
IsNull
extends
AbstractSpec
{
use
JsonField
;
...
...
This diff is collapsed.
Click to expand it.
src/Language/Specs/LessThan.php
View file @
77dbb450
...
...
@@ -10,7 +10,7 @@ use ApiQL\Language\JsonField;
*
* @package ApiQL\Language\Specs
*/
class
LessThan
class
LessThan
extends
AbstractSpec
{
use
JsonField
;
...
...
This diff is collapsed.
Click to expand it.
src/Language/Specs/LessThanOrEqual.php
View file @
77dbb450
...
...
@@ -10,7 +10,7 @@ use ApiQL\Language\JsonField;
*
* @package ApiQL\Language\Specs
*/
class
LessThanOrEqual
class
LessThanOrEqual
extends
AbstractSpec
{
use
JsonField
;
...
...
This diff is collapsed.
Click to expand it.
src/Language/Specs/Like.php
View file @
77dbb450
...
...
@@ -10,7 +10,7 @@ use ApiQL\Language\JsonField;
*
* @package ApiQL\Language\Specs
*/
class
Like
class
Like
extends
AbstractSpec
{
use
JsonField
;
...
...
This diff is collapsed.
Click to expand it.
src/Language/Specs/NotContainsString.php
View file @
77dbb450
...
...
@@ -10,7 +10,7 @@ use ApiQL\Language\JsonField;
*
* @package ApiQL\Language\Specs
*/
class
NotContainsString
class
NotContainsString
extends
AbstractSpec
{
use
JsonField
;
...
...
This diff is collapsed.
Click to expand it.
src/Language/Specs/NotEquals.php
View file @
77dbb450
...
...
@@ -10,7 +10,7 @@ use ApiQL\Language\JsonField;
*
* @package ApiQL\Language\Specs
*/
class
NotEquals
class
NotEquals
extends
AbstractSpec
{
use
JsonField
;
...
...
This diff is collapsed.
Click to expand it.
src/Language/Specs/NotIn.php
View file @
77dbb450
...
...
@@ -10,7 +10,7 @@ use ApiQL\Language\JsonField;
*
* @package ApiQL\Language\Specs
*/
class
NotIn
class
NotIn
extends
AbstractSpec
{
use
JsonField
;
...
...
This diff is collapsed.
Click to expand it.
src/Language/Specs/NotLike.php
View file @
77dbb450
...
...
@@ -10,7 +10,7 @@ use ApiQL\Language\JsonField;
*
* @package ApiQL\Language\Specs
*/
class
NotLike
class
NotLike
extends
AbstractSpec
{
use
JsonField
;
...
...
This diff is collapsed.
Click to expand it.
Prev
1
2
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment