DQLQueryBuilder::defaultConditionClasses()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 5
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 7
ccs 6
cts 6
cp 1
crap 1
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Db\Pgsql;
6
7
use Yiisoft\Db\Expression\ArrayExpression;
8
use Yiisoft\Db\Expression\Expression;
9
use Yiisoft\Db\Expression\ExpressionBuilderInterface;
10
use Yiisoft\Db\Expression\JsonExpression;
11
use Yiisoft\Db\Pgsql\Builder\ArrayExpressionBuilder;
12
use Yiisoft\Db\Pgsql\Builder\StructuredExpressionBuilder;
13
use Yiisoft\Db\Pgsql\Builder\ExpressionBuilder;
14
use Yiisoft\Db\Pgsql\Builder\JsonExpressionBuilder;
15
use Yiisoft\Db\QueryBuilder\AbstractDQLQueryBuilder;
16
use Yiisoft\Db\QueryBuilder\Condition\LikeCondition;
17
18
use function array_merge;
19
20
/**
21
 * Implements a DQL (Data Query Language) SQL statements for PostgreSQL Server.
22
 */
23
final class DQLQueryBuilder extends AbstractDQLQueryBuilder
24
{
25
    /**
26
     * Has an array of default condition classes.
27
     *
28
     * Extend this method if you want to change default condition classes for the query builder.
29
     *
30
     * {@see conditionClasses} docs for details.
31 611
     */
32
    protected function defaultConditionClasses(): array
33 611
    {
34 611
        return array_merge(parent::defaultConditionClasses(), [
35 611
            'ILIKE' => LikeCondition::class,
36 611
            'NOT ILIKE' => LikeCondition::class,
37 611
            'OR ILIKE' => LikeCondition::class,
38 611
            'OR NOT ILIKE' => LikeCondition::class,
39
        ]);
40
    }
41
42
    /**
43
     * Has an array of default expression builders.
44
     *
45
     * Extend this method and override it if you want to change default expression builders for this query builder.
46
     *
47
     * {@see ExpressionBuilder} docs for details.
48
     *
49
     * @psalm-return array<string, class-string<ExpressionBuilderInterface>>
50 611
     */
51
    protected function defaultExpressionBuilders(): array
52 611
    {
53 611
        return array_merge(parent::defaultExpressionBuilders(), [
54 611
            ArrayExpression::class => ArrayExpressionBuilder::class,
55 611
            JsonExpression::class => JsonExpressionBuilder::class,
56 611
            StructuredExpression::class => StructuredExpressionBuilder::class,
57
            Expression::class => ExpressionBuilder::class,
58
        ]);
59
    }
60
}
61