Neos\Eel\FlowQuery\FizzleParser::parseFilterGroup PHP Method

parseFilterGroup() public static method

public static parseFilterGroup ( $filter )
    public static function parseFilterGroup($filter)
    {
        $parser = new FizzleParser($filter);
        $parsedFilter = $parser->match_FilterGroup();
        if ($parser->pos !== strlen($filter)) {
            throw new FizzleException(sprintf('The Selector "%s" could not be parsed. Error at character %d.', $filter, $parser->pos + 1), 1327649317);
        }
        return $parsedFilter;
    }

Usage Example

 /**
  * {@inheritdoc}
  *
  * @param FlowQuery $flowQuery the FlowQuery object
  * @param array $arguments the arguments for this operation
  * @return void
  */
 public function evaluate(FlowQuery $flowQuery, array $arguments)
 {
     $output = array();
     $outputNodePaths = array();
     if (isset($arguments[0]) && !empty($arguments[0])) {
         $parsedFilter = FizzleParser::parseFilterGroup($arguments[0]);
         if ($this->earlyOptimizationOfFilters($flowQuery, $parsedFilter)) {
             return;
         }
     }
     /** @var NodeInterface $contextNode */
     foreach ($flowQuery->getContext() as $contextNode) {
         /** @var NodeInterface $childNode */
         foreach ($contextNode->getChildNodes() as $childNode) {
             if (!isset($outputNodePaths[$childNode->getPath()])) {
                 $output[] = $childNode;
                 $outputNodePaths[$childNode->getPath()] = true;
             }
         }
     }
     $flowQuery->setContext($output);
     if (isset($arguments[0]) && !empty($arguments[0])) {
         $flowQuery->pushOperation('filter', $arguments);
     }
 }
All Usage Examples Of Neos\Eel\FlowQuery\FizzleParser::parseFilterGroup