Doctrine\Common\Collections\Expr\ClosureExpressionVisitor::walkCompositeExpression PHP Метод

walkCompositeExpression() публичный Метод

{@inheritDoc}
public walkCompositeExpression ( Doctrine\Common\Collections\Expr\CompositeExpression $expr )
$expr Doctrine\Common\Collections\Expr\CompositeExpression
    public function walkCompositeExpression(CompositeExpression $expr)
    {
        $expressionList = array();
        foreach ($expr->getExpressionList() as $child) {
            $expressionList[] = $this->dispatch($child);
        }
        switch ($expr->getType()) {
            case CompositeExpression::TYPE_AND:
                return $this->andExpressions($expressionList);
            case CompositeExpression::TYPE_OR:
                return $this->orExpressions($expressionList);
            default:
                throw new \RuntimeException("Unknown composite " . $expr->getType());
        }
    }

Usage Example

Пример #1
0
 public function testWalkOrCompositeExpression()
 {
     $closure = $this->visitor->walkCompositeExpression($this->builder->orX($this->builder->eq("foo", 1), $this->builder->eq("bar", 1)));
     $this->assertTrue($closure(new TestObject(1, 1)));
     $this->assertTrue($closure(new TestObject(1, 0)));
     $this->assertTrue($closure(new TestObject(0, 1)));
     $this->assertFalse($closure(new TestObject(0, 0)));
 }