/** * @param PropelModelPager $pagination * * @return LoopResult */ public function exec(&$pagination) { $hash = $this->args->getHash(); if (($isCaching = $this->isCaching()) && isset(self::$cacheLoopResult[$hash])) { if (isset(self::$cacheLoopPagination[$hash])) { $pagination = self::$cacheLoopPagination[$hash]; } return self::$cacheLoopResult[$hash]; } $results = []; if ($this instanceof PropelSearchLoopInterface) { $searchModelCriteria = $this->extendsBuildModelCriteria($this->buildModelCriteria()); if (null !== $searchModelCriteria) { $results = $this->search($searchModelCriteria, $pagination); } } elseif ($this instanceof ArraySearchLoopInterface) { $searchArray = $this->extendsBuildArray($this->buildArray()); if (null !== $searchArray) { $results = $this->searchArray($searchArray); } } $loopResult = new LoopResult($results); if (true === $this->countable) { $loopResult->setCountable(); } if (true === $this->timestampable) { $loopResult->setTimestamped(); } if (true === $this->versionable) { $loopResult->setVersioned(); } $parsedResults = $this->extendsParseResults($this->parseResults($loopResult)); if ($isCaching) { self::$cacheLoopResult[$hash] = $parsedResults; if ($pagination instanceof PropelModelPager) { self::$cacheLoopPagination[$hash] = clone $pagination; } } return $parsedResults; }
/** * @param PropelModelPager $pagination * * @return LoopResult */ public function exec(&$pagination) { $hash = $this->args->getHash(); if (false === isset(self::$cacheLoopResult[$hash])) { $results = []; if ($this instanceof PropelSearchLoopInterface) { $searchModelCriteria = $this->buildModelCriteria(); if (null !== $searchModelCriteria) { $results = $this->search($searchModelCriteria, $pagination); } } elseif ($this instanceof ArraySearchLoopInterface) { $searchArray = $this->buildArray(); if (null !== $searchArray) { $results = $this->searchArray($searchArray); } } $loopResult = new LoopResult($results); if (true === $this->countable) { $loopResult->setCountable(); } if (true === $this->timestampable) { $loopResult->setTimestamped(); } if (true === $this->versionable) { $loopResult->setVersioned(); } self::$cacheLoopResult[$hash] = $this->parseResults($loopResult); } return self::$cacheLoopResult[$hash]; }