protected function getCacheId() { $hints = $this->query->getHints(); ksort($hints); $types = array(); foreach ($this->query->getParameters() as $parameter) { $types[$parameter->getName()] = $parameter->getType(); } $platform = $this->query->getEntityManager()->getConnection()->getDatabasePlatform()->getName(); return md5(serialize(['dql' => $this->query->getDQL(), 'platform' => $platform, 'filters' => $this->query->getEntityManager()->hasFilters() ? $this->query->getEntityManager()->getFilters()->getHash() : '', 'firstResult' => $this->query->getFirstResult(), 'maxResult' => $this->query->getMaxResults(), 'hydrationMode' => $this->query->getHydrationMode(), 'types' => $types, 'hints' => $hints, 'salt' => __CLASS__ . 'V1'])); }
/** * Clone query * * @param Doctrine\ORM\AbstractQuery $query * @return Doctrine\ORM\AbstractQuery */ protected function cloneQuery(AbstractQuery $query) { $aclAppliedQuery = clone $query; $params = $query->getParameters(); $aclAppliedQuery->setParameters($params); return $aclAppliedQuery; }
/** * Clone query * * @param AbstractQuery $query * @return AbstractQuery */ protected function cloneQuery(AbstractQuery $query) { $aclAppliedQuery = clone $query; $params = $query->getParameters(); foreach ($params as $key => $param) { $aclAppliedQuery->setParameter($key, $param); } return $query; }
/** * * * deprecated: lieber deliverQuery benutzen */ protected function processQuery(\Doctrine\ORM\AbstractQuery $q, $mode = 'SingleResult', $ident = NULL) { if (\Psc\PSC::getProject()->isDevelopment()) { throw new \Psc\DeprecatedException(__FUNCTION__ . ' ist deprecated'); } if ($mode == 'SingleResult') { try { return $q->getSingleResult(); } catch (\Doctrine\ORM\NoResultException $e) { $e = new \Psc\Doctrine\EntityNotFoundException('Es konnte kein Ergebnis für den Identifier: ' . Code::varInfo($ident) . ' gefunden werden.'); $e->findCriteria = $q->getParameters(); throw $e; } catch (\Doctrine\ORM\NonUniqueResultException $e) { $e = new \Psc\Doctrine\EntityNonUniqueResultException('Es wurde mehr als ein Ergebnis für den Identifier: ' . Code::varInfo($ident) . ' gefunden. '); $e->findCriteria = $q->getParameters(); throw $e; } } throw new \Psc\Exception('Falscher parameter für mode: ' . Code::varInfo($mode)); }