Beispiel #1
0
 /**
  * @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;
 }
Beispiel #2
0
 /**
  * @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];
 }