Neos\Flow\Persistence\Doctrine\CountWalker::walkSelectStatement PHP Метод

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

Walks down a SelectStatement AST node, modifying it to retrieve a COUNT
public walkSelectStatement ( Doctrine\ORM\Query\AST\SelectStatement $AST ) : void
$AST Doctrine\ORM\Query\AST\SelectStatement
Результат void
    public function walkSelectStatement(\Doctrine\ORM\Query\AST\SelectStatement $AST)
    {
        $parent = null;
        $parentName = null;
        foreach ($this->_getQueryComponents() as $dqlAlias => $qComp) {
            if ($qComp['parent'] === null && $qComp['nestingLevel'] == 0) {
                $parent = $qComp;
                $parentName = $dqlAlias;
                break;
            }
        }
        $pathExpression = new PathExpression(PathExpression::TYPE_STATE_FIELD | PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION, $parentName, $parent['metadata']->getSingleIdentifierFieldName());
        $pathExpression->type = PathExpression::TYPE_STATE_FIELD;
        $AST->selectClause->selectExpressions = [new \Doctrine\ORM\Query\AST\SelectExpression(new \Doctrine\ORM\Query\AST\AggregateExpression('count', $pathExpression, true), null)];
        // ORDER BY is not needed, only increases query execution through unnecessary sorting.
        $AST->orderByClause = null;
    }