Example #1
0
 /**
  * @param PropelModelPager $pagination
  *
  * @return LoopResult
  */
 public function exec(&$pagination)
 {
     $hash = $this->args->getHash();
     if (($isCaching = $this->isCaching()) && isset(self::$cacheLoopResult[$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;
     }
     return $parsedResults;
 }