public static function getAliasByChain(QueryChain $chain) { $alias = array(); $elements = $chain->getAllElements(); // add prefix of init entity if (count($elements) > 2) { $alias[] = $chain->getFirstElement()->getAliasFragment(); } // add other members of chain /** @var QueryChainElement[] $elements */ $elements = array_slice($elements, 1); foreach ($elements as $element) { $fragment = $element->getAliasFragment(); if (strlen($fragment)) { $alias[] = $fragment; } } return join('_', $alias); }