- ? , QueryBuilder, null , getResult()...
, , , getBaseQueryBuilder . , - :
protected function getBaseQueryBuilder($type) {
switch ($type) {
case self::TYPE_1;
return $this->em->createQueryBuilder()->...lots of clauses...;
case self::TYPE_2;
return $this->em->createQueryBuilder()->...lots of clauses...;
case self::TYPE_N;
return null;
}
}
protected function getResultFromBaseQueryBuilder() {
$type = $this->getType();
$queryBuilder = $this->getBaseQueryBuilder($type);
if( $queryBuilder === null ){
return
}
return $queryBuilder->getResult();
}
:
protected function getBaseQueryBuilder($type) {
switch ($type) {
case self::TYPE_1;
return $this->em->createQueryBuilder()->...lots of clauses...;
case self::TYPE_2;
return $this->em->createQueryBuilder()->...lots of clauses...;
}
}
protected function getResultFromBaseQueryBuilder() {
$type = $this->getType();
if( $type === self:TYPE_N ){
return
}
$queryBuilder = $this->getBaseQueryBuilder($type);
return $queryBuilder->getResult();
}
, , getBaseQueryBuilder, , , . ( getResult getResultFromBaseQueryBuilder, , ).