Skip to content

Commit f1cfc54

Browse files
committed
small updates
1 parent d884c93 commit f1cfc54

3 files changed

Lines changed: 31 additions & 46 deletions

File tree

src/Assembler/QueryAssembler.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<?php
22
namespace Packaged\QueryBuilder\Assembler;
33

4-
use Packaged\QueryBuilder\Assembler\Segments\AbstractSegmentAssembler;
54
use Packaged\QueryBuilder\Assembler\Segments\ClauseAssembler;
65
use Packaged\QueryBuilder\Assembler\Segments\ExpressionAssembler;
76
use Packaged\QueryBuilder\Assembler\Segments\PredicateAssembler;
@@ -86,6 +85,10 @@ public function assembleSegment($segment)
8685
{
8786
return $segment;
8887
}
88+
else if(!($segment instanceof IStatementSegment))
89+
{
90+
throw new \Exception("Unsupported segment type " . get_class($segment));
91+
}
8992
else if($segment instanceof IStatement)
9093
{
9194
$assembler = new StatementAssembler($segment);
@@ -108,7 +111,7 @@ public function assembleSegment($segment)
108111
}
109112
else
110113
{
111-
throw new \Exception("Unsupported segment type " . get_class($segment));
114+
throw new \Exception("Unsupported IStatementSegment type " . get_class($segment));
112115
}
113116

114117
$assembler->setAssembler($this);

src/Assembler/Segments/AbstractSegmentAssembler.php

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ public function assembleSegments($segments)
4747
* @param $segment
4848
*
4949
* @return string
50+
* @throws \Exception
5051
*/
5152
public function assembleSegment($segment)
5253
{
@@ -55,13 +56,13 @@ public function assembleSegment($segment)
5556

5657
protected function _assemblePrepared($expr = null)
5758
{
58-
$assembler = $this->getAssembler();
59-
if($assembler->isForPrepare())
59+
if(!$this->getAssembler()->isForPrepare())
6060
{
61-
$assembler->addParameter($expr !== null ? $expr : $this->_segment);
62-
return '?';
61+
return false;
6362
}
64-
return false;
63+
64+
$this->getAssembler()->addParameter($expr !== null ? $expr : $this->_segment);
65+
return '?';
6566
}
6667

6768
/**
@@ -72,9 +73,7 @@ protected function _assemblePrepared($expr = null)
7273
public function assemble()
7374
{
7475
throw new \RuntimeException(
75-
"Unsupported segment '"
76-
. get_class($this->_segment)
77-
. "' passed to the " .
76+
"Unsupported segment '" . get_class($this->_segment) . "' passed to the " .
7877
ucwords(Strings::humanize(Objects::classShortname(get_called_class())))
7978
);
8079
}
@@ -86,10 +85,6 @@ public function escapeField($field)
8685

8786
public function escapeValue($value)
8887
{
89-
if(is_int($value) || is_float($value) || is_double($value))
90-
{
91-
return $value;
92-
}
93-
return $this->getAssembler()->escapeValue($value);
88+
return !is_string($value) && is_numeric($value) ? $value : $this->getAssembler()->escapeValue($value);
9489
}
9590
}

src/Assembler/Segments/ExpressionAssembler.php

Lines changed: 18 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public function __construct(IExpression $expression)
2828
* Assemble the segment
2929
*
3030
* @return string
31+
* @throws QueryBuilderAssemblerException
3132
*/
3233
public function assemble()
3334
{
@@ -85,9 +86,9 @@ public function assemble()
8586
public function assembleCaseExpression(CaseExpression $expr)
8687
{
8788
return 'CASE WHEN(' . $this->assembleSegment($expr->getExpression()) . ')'
88-
. ' THEN ' . $this->assembleSegment($expr->getTrueValue())
89-
. ' ELSE ' . $this->assembleSegment($expr->getFalseValue())
90-
. ' END';
89+
. ' THEN ' . $this->assembleSegment($expr->getTrueValue())
90+
. ' ELSE ' . $this->assembleSegment($expr->getFalseValue())
91+
. ' END';
9192
}
9293

9394
public function assembleIfExpression(IfExpression $expr)
@@ -113,17 +114,14 @@ public function assembleStringExpression(StringExpression $expr)
113114
public function assembleArrayExpression(ArrayExpression $expr)
114115
{
115116
$exprValues = $expr->getValue();
116-
if(count($exprValues) < 1)
117+
if(empty($exprValues))
117118
{
118-
throw new QueryBuilderAssemblerException(
119-
'Cannot assemble an empty ArrayExpression'
120-
);
119+
throw new QueryBuilderAssemblerException('Cannot assemble an empty ArrayExpression');
121120
}
122121
$values = [];
123122
foreach($exprValues as $value)
124123
{
125-
$values[] = $this->_assemblePrepared($value)
126-
?: $this->escapeValue($value);
124+
$values[] = $this->_assemblePrepared($value) ?: $this->escapeValue($value);
127125
}
128126
return '(' . implode(',', $values) . ')';
129127
}
@@ -135,8 +133,7 @@ public function assembleNumericExpression(NumericExpression $expr)
135133

136134
public function assembleBooleanExpression(BooleanExpression $expr)
137135
{
138-
return $this->_assemblePrepared()
139-
?: ($expr->getValue() ? 'true' : 'false');
136+
return $this->_assemblePrepared() ?: ($expr->getValue() ? 'true' : 'false');
140137
}
141138

142139
public function assembleCounterExpression(CounterExpression $expr)
@@ -151,13 +148,11 @@ public function assembleCounterExpression(CounterExpression $expr)
151148
}
152149

153150
return $this->assembleSegment($field)
154-
. ' ' . $expr->getOperator() . ' '
155-
. $this->assembleSegment($expr->getValue());
151+
. ' ' . $expr->getOperator()
152+
. ' ' . $this->assembleSegment($expr->getValue());
156153
}
157154

158-
public function assembleArithmeticExpression(
159-
AbstractArithmeticExpression $expr
160-
)
155+
public function assembleArithmeticExpression(AbstractArithmeticExpression $expr)
161156
{
162157
$values = [];
163158
foreach($expr->getExpressions() as $value)
@@ -178,33 +173,25 @@ public function assembleValueExpression(ValueExpression $expression)
178173
{
179174
if(!is_string($value) && is_numeric($value))
180175
{
181-
return $this->assembleNumericExpression(
182-
NumericExpression::create($value)
183-
);
176+
return $this->assembleNumericExpression(NumericExpression::create($value));
184177
}
185-
else if(is_bool($value))
178+
if(is_bool($value))
186179
{
187-
return $this->assembleBooleanExpression(
188-
BooleanExpression::create($value)
189-
);
180+
return $this->assembleBooleanExpression(BooleanExpression::create($value));
190181
}
191182
}
192183
else if(is_array($value))
193184
{
194-
return $this->assembleArrayExpression(
195-
ArrayExpression::create($value)
196-
);
185+
return $this->assembleArrayExpression(ArrayExpression::create($value));
197186
}
198-
return $this->assembleStringExpression(
199-
StringExpression::create($value)
200-
);
187+
return $this->assembleStringExpression(StringExpression::create($value));
201188
}
202189

203190
public function assembleFieldExpression(FieldExpression $expr)
204191
{
205192
return ($expr->hasTable() ?
206-
$this->assembleSegment($expr->getTable()) . '.' : '')
207-
. $this->escapeField($expr->getField());
193+
$this->assembleSegment($expr->getTable()) . '.' : '')
194+
. $this->escapeField($expr->getField());
208195
}
209196

210197
public function assembleTableExpression(TableExpression $expr)

0 commit comments

Comments
 (0)