Completed
Pull Request — master (#7800)
by Maxime
10:09
created

BaseAlias   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Test Coverage

Coverage 92.31%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 11
c 1
b 0
f 0
dl 0
loc 40
rs 10
ccs 12
cts 13
cp 0.9231
wmc 9

2 Methods

Rating   Name   Duplication   Size   Complexity  
A add() 0 11 6
A addMultiple() 0 12 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Doctrine\ORM\Query\Expr;
6
7
use InvalidArgumentException;
8
use function is_array;
9
use function is_string;
10
use function sprintf;
11
12
/**
13
 * Abstract base Expr class for building DQL parts.
14
 */
15
abstract class BaseAlias extends Base
16
{
17
    /**
18
     * @param mixed $args
19
     *
20
     * @return Base
21
     */
22 120
    public function addMultiple($args = [])
23
    {
24 120
        foreach ((array) $args as $alias => $arg) {
25 120
            if (is_string($alias)) {
26 2
                $this->add($arg, $alias);
27
28 2
                continue;
29
            }
30 119
            parent::add($arg);
31
        }
32
33 120
        return $this;
34
    }
35
36
    /**
37
     * @param mixed       $arg
38
     * @param string|null $alias
39
     *
40
     * @return Base
41
     *
42
     * @throws InvalidArgumentException
43
     */
44 2
    public function add($arg, $alias = null)
45
    {
46 2
        if ($alias !== null && is_array($arg) && (! $arg instanceof self || $arg->count() > 0)) {
47 2
            foreach ($arg as $v) {
48 2
                parent::add(sprintf('%s.%s', $alias, $v));
49
            }
50
51 2
            return $this;
52
        }
53
54
        return parent::add($arg);
55
    }
56
}
57