Completed
Push — master ( c31ce4...434cb8 )
by BENOIT
05:40
created

functions.php ➔ placeholders()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 3
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace BenTools\Where;
4
5
use BenTools\Where\DeleteQuery\DeleteQueryBuilder;
6
use BenTools\Where\Expression\Condition;
7
use BenTools\Where\Expression\Expression;
8
use BenTools\Where\Expression\GroupExpression;
9
use BenTools\Where\Expression\NegatedExpression;
10
use BenTools\Where\Helper\FieldHelper;
11
use BenTools\Where\InsertQuery\InsertQueryBuilder;
12
use BenTools\Where\SelectQuery\SelectQueryBuilder;
13
use BenTools\Where\UpdateQuery\UpdateQueryBuilder;
14
15
/**
16
 * @param string|Expression $expression
17
 * @param array ...$values
18
 * @return Expression|Condition
19
 * @throws \InvalidArgumentException
20
 */
21
function where($expression, ...$values): Expression
22
{
23
    return Expression::where($expression, ...$values);
24
}
25
26
/**
27
 * @param string|Expression $expression
28
 * @param array ...$values
29
 * @return GroupExpression
30
 * @throws \InvalidArgumentException
31
 */
32
function group($expression, ...$values): GroupExpression
33
{
34
    return Expression::group($expression, ...$values);
35
}
36
37
/**
38
 * @param string|Expression $expression
39
 * @param array ...$values
40
 * @return NegatedExpression
41
 * @throws \InvalidArgumentException
42
 */
43
function not($expression, ...$values): NegatedExpression
44
{
45
    return Expression::not($expression, ...$values);
46
}
47
48
function valuesOf(Expression ...$expressions): array
49
{
50
    return Expression::valuesOf(...$expressions);
51
}
52
53
/**
54
 * @param Expression[]|string[] ...$columns
55
 * @return SelectQueryBuilder
56
 */
57
function select(...$columns): SelectQueryBuilder
58
{
59
    return SelectQueryBuilder::make(...$columns);
60
}
61
62
/**
63
 * @param Expression[]|string[] ...$tables
64
 * @return SelectQueryBuilder
65
 */
66
function delete(...$tables): DeleteQueryBuilder
67
{
68
    return DeleteQueryBuilder::make(...$tables);
69
}
70
71
/**
72
 * @param array[] ...$values
73
 * @return InsertQueryBuilder
74
 * @throws \InvalidArgumentException
75
 */
76
function insert(array ...$values): InsertQueryBuilder
77
{
78
    return InsertQueryBuilder::load(...$values);
79
}
80
81
/**
82
 * @param string $table
83
 * @return UpdateQueryBuilder
84
 */
85
function update(string $table): UpdateQueryBuilder
86
{
87
    return UpdateQueryBuilder::make($table);
88
}
89
90
/**
91
 * @param array  $values
92
 * @param string $placeholder
93
 * @param string $glue
94
 * @return string
95
 */
96
function placeholders(array $values, string $placeholder = '?', string $glue = ', '): string
97
{
98
    return implode($glue, array_fill(0, count($values), $placeholder));
99
}
100
101
/**
102
 * @param string $field
103
 * @return FieldHelper
104
 */
105
function field(string $field): FieldHelper
106
{
107
    return new FieldHelper($field);
108
}
109