Passed
Push — main ( 03028e...877d92 )
by Martin
03:39 queued 01:09
created

Contains::customizeFunction()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 0
dl 0
loc 5
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace MartinGeorgiev\Doctrine\ORM\Query\AST\Functions;
6
7
/**
8
 * Implementation of PostgreSQL check if left side contains right side (using @>).
9
 *
10
 * @see https://www.postgresql.org/docs/9.4/static/functions-array.html
11
 * @since 0.1
12
 *
13
 * @author Martin Georgiev <[email protected]>
14
 *
15
 * @example Using it in DQL with boolean comparison: "WHERE CONTAINS(e.tags, ARRAY[:tags]) = TRUE"
16
 * Returns boolean, must be used with "= TRUE" or "= FALSE" in DQL.
17
 */
18
class Contains extends BaseFunction
19
{
20
    protected function customizeFunction(): void
21
    {
22
        $this->setFunctionPrototype('(%s @> %s)');
23
        $this->addNodeMapping('StringPrimary');
24
        $this->addNodeMapping('StringPrimary');
25
    }
26
}
27