Completed
Push — master ( 0b8037...4f7635 )
by Ron
01:44
created

ConditionAddHelper::addAsArray()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 2
c 0
b 0
f 0
dl 0
loc 3
rs 10
cc 2
nc 2
nop 3
1
<?php
2
namespace Kir\MySQL\Builder\Helpers;
3
4
use Closure;
5
use Kir\MySQL\Builder\Expr\OptionalExpression;
6
7
abstract class ConditionAddHelper {
8
	/**
9
	 * @param Closure $addFn
10
	 * @param string|array|object|OptionalExpression $expression
11
	 * @param mixed[] $args
12
	 */
13
	public static function addCondition(Closure $addFn, $expression, ...$args) {
14
		if($expression instanceof OptionalExpression) {
15
			if($expression->isValid()) {
16
				$addFn($expression->getExpression(), $expression->getValue());
17
			}
18
		} elseif(is_object($expression)) {
19
			self::addAsArray($addFn, (array) $expression, $args);
20
		} elseif(is_array($expression)) {
21
			self::addAsArray($addFn, $expression, $args);
22
		} else {
23
			$addFn($expression, $args);
24
		}
25
	}
26
27
	/**
28
	 * @param Closure $addFn
29
	 * @param array $expression
30
	 * @param array $args
31
	 */
32
	private static function addAsArray(Closure $addFn, array $expression, array $args) {
33
		if(count($expression) > 0) {
34
			$addFn($expression, $args);
35
		}
36
	}
37
}
38