for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types = 1);
namespace Puzzle\QueryBuilder\Conditions\Binaries;
use Puzzle\QueryBuilder\Conditions\CompositeCondition;
use Puzzle\QueryBuilder\Condition;
use Puzzle\QueryBuilder\Escaper;
use Puzzle\QueryBuilder\Conditions\AbstractCondition;
abstract class AbstractCompositeCondition extends AbstractCondition implements CompositeCondition
{
protected
$leftCondition,
Only declaring a single property per statement allows you to later on add doc comments more easily.
It is also recommended by PSR2, so it is a common style that many people expect.
$leftCondition
The PSR-2 coding standard requires that all properties in a class have their visibility explicitly declared. If you declare a property using
class A { var $property; }
the property is implicitly global.
To learn more about the PSR-2, please see the PHP-FIG site on the PSR-2.
$rightCondition;
public function __construct(Condition $leftCondition, Condition $rightCondition)
$this->leftCondition = $leftCondition;
$this->rightCondition = $rightCondition;
}
public function toString(Escaper $escaper): string
if($this->leftCondition->isEmpty())
return $this->rightCondition->toString($escaper);
if($this->rightCondition->isEmpty())
return $this->leftCondition->toString($escaper);
return $this->buildCondition($escaper);
public function isEmpty(): bool
return $this->leftCondition->isEmpty() && $this->rightCondition->isEmpty();
protected function buildPartCondition(Condition $condition, Escaper $escaper): string
$partCondition = $condition->toString($escaper);
if($condition instanceof CompositeCondition)
$partCondition = sprintf('(%s)', $partCondition);
return $partCondition;
abstract protected function buildCondition(Escaper $escaper): string;
Only declaring a single property per statement allows you to later on add doc comments more easily.
It is also recommended by PSR2, so it is a common style that many people expect.