Skip to content

Commit 12a21b9

Browse files
committed
used PHP 5.6 variadics (BC break: signatures are changed)
1 parent 0f8249c commit 12a21b9

File tree

6 files changed

+61
-83
lines changed

6 files changed

+61
-83
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"require-dev": {
2323
"nette/tester": "~1.3",
2424
"nette/di": "~2.3",
25-
"mockery/mockery": "~0.9.1"
25+
"mockery/mockery": "~1.0.0"
2626
},
2727
"conflict": {
2828
"nette/nette": "<2.2"

src/Database/Connection.php

Lines changed: 15 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -167,18 +167,11 @@ public function rollBack()
167167
/**
168168
* Generates and executes SQL query.
169169
* @param string
170-
* @param mixed [parameters, ...]
171170
* @return ResultSet
172171
*/
173-
public function query($sql)
172+
public function query($sql, ...$params)
174173
{
175-
$this->connect();
176-
177-
$args = is_array($sql) ? $sql : func_get_args(); // accepts arrays only internally
178-
list($sql, $params) = count($args) > 1
179-
? $this->preprocessor->process($args)
180-
: [$args[0], []];
181-
174+
list($sql, $params) = $this->preprocess($sql, ...$params);
182175
try {
183176
$result = new ResultSet($this, $sql, $params);
184177
} catch (PDOException $e) {
@@ -196,18 +189,17 @@ public function query($sql)
196189
*/
197190
public function queryArgs($sql, array $params)
198191
{
199-
array_unshift($params, $sql);
200-
return $this->query($params);
192+
return $this->query($sql, ...$params);
201193
}
202194

203195

204196
/**
205197
* @return [string, array]
206198
*/
207-
public function preprocess($sql)
199+
public function preprocess($sql, ...$params)
208200
{
209201
$this->connect();
210-
return func_num_args() > 1
202+
return $params
211203
? $this->preprocessor->process(func_get_args())
212204
: [$sql, []];
213205
}
@@ -219,57 +211,52 @@ public function preprocess($sql)
219211
/**
220212
* Shortcut for query()->fetch()
221213
* @param string
222-
* @param mixed [parameters, ...]
223214
* @return Row
224215
*/
225-
public function fetch($args)
216+
public function fetch($sql, ...$params)
226217
{
227-
return $this->query(func_get_args())->fetch();
218+
return $this->query($sql, ...$params)->fetch();
228219
}
229220

230221

231222
/**
232223
* Shortcut for query()->fetchField()
233224
* @param string
234-
* @param mixed [parameters, ...]
235225
* @return mixed
236226
*/
237-
public function fetchField($args)
227+
public function fetchField($sql, ...$params)
238228
{
239-
return $this->query(func_get_args())->fetchField();
229+
return $this->query($sql, ...$params)->fetchField();
240230
}
241231

242232

243233
/**
244234
* Shortcut for query()->fetchPairs()
245235
* @param string
246-
* @param mixed [parameters, ...]
247236
* @return array
248237
*/
249-
public function fetchPairs($args)
238+
public function fetchPairs($sql, ...$params)
250239
{
251-
return $this->query(func_get_args())->fetchPairs();
240+
return $this->query($sql, ...$params)->fetchPairs();
252241
}
253242

254243

255244
/**
256245
* Shortcut for query()->fetchAll()
257246
* @param string
258-
* @param mixed [parameters, ...]
259247
* @return array
260248
*/
261-
public function fetchAll($args)
249+
public function fetchAll($sql, ...$params)
262250
{
263-
return $this->query(func_get_args())->fetchAll();
251+
return $this->query($sql, ...$params)->fetchAll();
264252
}
265253

266254

267255
/**
268256
* @return SqlLiteral
269257
*/
270-
public static function literal($value)
258+
public static function literal($value, ...$params)
271259
{
272-
$args = func_get_args();
273-
return new SqlLiteral(array_shift($args), $args);
260+
return new SqlLiteral($value, $params);
274261
}
275262
}

src/Database/Context.php

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,11 @@ public function getInsertId($name = NULL)
7272
/**
7373
* Generates and executes SQL query.
7474
* @param string
75-
* @param mixed [parameters, ...]
7675
* @return ResultSet
7776
*/
78-
public function query($sql)
77+
public function query($sql, ...$params)
7978
{
80-
return $this->connection->query(func_get_args());
79+
return $this->connection->query($sql, ...$params);
8180
}
8281

8382

@@ -87,7 +86,7 @@ public function query($sql)
8786
*/
8887
public function queryArgs($sql, array $params)
8988
{
90-
return $this->connection->queryArgs($sql, $params);
89+
return $this->connection->query($sql, ...$params);
9190
}
9291

9392

@@ -128,58 +127,53 @@ public function getConventions()
128127
/**
129128
* Shortcut for query()->fetch()
130129
* @param string
131-
* @param mixed [parameters, ...]
132130
* @return Row
133131
*/
134-
public function fetch($args)
132+
public function fetch($sql, ...$params)
135133
{
136-
return $this->connection->query(func_get_args())->fetch();
134+
return $this->connection->query($sql, ...$params)->fetch();
137135
}
138136

139137

140138
/**
141139
* Shortcut for query()->fetchField()
142140
* @param string
143-
* @param mixed [parameters, ...]
144141
* @return mixed
145142
*/
146-
public function fetchField($args)
143+
public function fetchField($sql, ...$params)
147144
{
148-
return $this->connection->query(func_get_args())->fetchField();
145+
return $this->connection->query($sql, ...$params)->fetchField();
149146
}
150147

151148

152149
/**
153150
* Shortcut for query()->fetchPairs()
154151
* @param string
155-
* @param mixed [parameters, ...]
156152
* @return array
157153
*/
158-
public function fetchPairs($args)
154+
public function fetchPairs($sql, ...$params)
159155
{
160-
return $this->connection->query(func_get_args())->fetchPairs();
156+
return $this->connection->query($sql, ...$params)->fetchPairs();
161157
}
162158

163159

164160
/**
165161
* Shortcut for query()->fetchAll()
166162
* @param string
167-
* @param mixed [parameters, ...]
168163
* @return array
169164
*/
170-
public function fetchAll($args)
165+
public function fetchAll($sql, ...$params)
171166
{
172-
return $this->connection->query(func_get_args())->fetchAll();
167+
return $this->connection->query($sql, ...$params)->fetchAll();
173168
}
174169

175170

176171
/**
177172
* @return SqlLiteral
178173
*/
179-
public static function literal($value)
174+
public static function literal($value, ...$params)
180175
{
181-
$args = func_get_args();
182-
return new SqlLiteral(array_shift($args), $args);
176+
return new SqlLiteral($value, $params);
183177
}
184178

185179
}

src/Database/Table/GroupedSelection.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,24 +61,24 @@ public function setActive($active)
6161
}
6262

6363

64-
public function select($columns)
64+
public function select($columns, ...$params)
6565
{
6666
if (!$this->sqlBuilder->getSelect()) {
6767
$this->sqlBuilder->addSelect("$this->name.$this->column");
6868
}
6969

70-
return call_user_func_array('parent::select', func_get_args());
70+
return parent::select($columns, ...$params);
7171
}
7272

7373

74-
public function order($columns)
74+
public function order($columns, ...$params)
7575
{
7676
if (!$this->sqlBuilder->getOrder()) {
7777
// improve index utilization
7878
$this->sqlBuilder->addOrder("$this->name.$this->column" . (preg_match('~\bDESC\z~i', $columns) ? ' DESC' : ''));
7979
}
8080

81-
return call_user_func_array('parent::order', func_get_args());
81+
return parent::order($columns, ...$params);
8282
}
8383

8484

src/Database/Table/Selection.php

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -277,10 +277,10 @@ public function fetchAssoc($path)
277277
* @param string for example "column, MD5(column) AS column_md5"
278278
* @return self
279279
*/
280-
public function select($columns)
280+
public function select($columns, ...$params)
281281
{
282282
$this->emptyResultSet();
283-
call_user_func_array([$this->sqlBuilder, 'addSelect'], func_get_args());
283+
$this->sqlBuilder->addSelect($columns, ...$params);
284284
return $this;
285285
}
286286

@@ -317,9 +317,9 @@ public function wherePrimary($key)
317317
* @param mixed ...
318318
* @return self
319319
*/
320-
public function where($condition, $parameters = [])
320+
public function where($condition, ...$params)
321321
{
322-
if (is_array($condition) && $parameters === []) { // where(array('column1' => 1, 'column2 > ?' => 2))
322+
if (is_array($condition) && $params === []) { // where(array('column1' => 1, 'column2 > ?' => 2))
323323
foreach ($condition as $key => $val) {
324324
if (is_int($key)) {
325325
$this->where($val); // where('full condition')
@@ -331,7 +331,7 @@ public function where($condition, $parameters = [])
331331
}
332332

333333
$this->emptyResultSet();
334-
call_user_func_array([$this->sqlBuilder, 'addWhere'], func_get_args());
334+
$this->sqlBuilder->addWhere($condition, ...$params);
335335
return $this;
336336
}
337337

@@ -341,10 +341,10 @@ public function where($condition, $parameters = [])
341341
* @param string for example 'column1, column2 DESC'
342342
* @return self
343343
*/
344-
public function order($columns)
344+
public function order($columns, ...$params)
345345
{
346346
$this->emptyResultSet();
347-
call_user_func_array([$this->sqlBuilder, 'addOrder'], func_get_args());
347+
$this->sqlBuilder->addOrder($columns, ...$params);
348348
return $this;
349349
}
350350

@@ -386,10 +386,10 @@ public function page($page, $itemsPerPage, & $numOfPages = NULL)
386386
* @param string
387387
* @return self
388388
*/
389-
public function group($columns)
389+
public function group($columns, ...$params)
390390
{
391391
$this->emptyResultSet();
392-
call_user_func_array([$this->sqlBuilder, 'setGroup'], func_get_args());
392+
$this->sqlBuilder->setGroup($columns, ...$params);
393393
return $this;
394394
}
395395

@@ -399,10 +399,10 @@ public function group($columns)
399399
* @param string
400400
* @return self
401401
*/
402-
public function having($having)
402+
public function having($having, ...$params)
403403
{
404404
$this->emptyResultSet();
405-
call_user_func_array([$this->sqlBuilder, 'setHaving'], func_get_args());
405+
$this->sqlBuilder->setHaving($having, ...$params);
406406
return $this;
407407
}
408408

0 commit comments

Comments
 (0)