Webmozart\Expression\Traversal\ExpressionTraverser::traverse PHP Method

traverse() public method

Traverses an expression.
public traverse ( Webmozart\Expression\Expression $expr ) : Webmozart\Expression\Expression
$expr Webmozart\Expression\Expression The expression to traverse.
return Webmozart\Expression\Expression The modified expression. May be `null` if the expression was removed entirely.
    public function traverse(Expression $expr)
    {
        // Do one full traversal per visitor. If any of the visitors removes
        // the expression entirely, subsequent visitors are not invoked.
        foreach ($this->visitors as $visitor) {
            $expr = $this->traverseForVisitor($expr, $visitor);
            if (!$expr) {
                return null;
            }
        }
        return $expr;
    }

Usage Example

示例#1
0
 /**
  * @param Expression[] $expressions
  * @param string       $class
  *
  * @return \Doctrine\ORM\QueryBuilder
  *
  * @throws \Exception
  */
 public function toQueryBuilder(array $expressions, $class)
 {
     $expr = $this->buildExpression($expressions);
     $qb = $this->em->getRepository($class)->createQueryBuilder('a');
     $traverser = new ExpressionTraverser();
     $traverser->addVisitor(new QueryBuilderVisitor($qb));
     $traverser->traverse($expr);
     return $qb;
 }
All Usage Examples Of Webmozart\Expression\Traversal\ExpressionTraverser::traverse