public function execute(BaseCollection &$collection)
 {
     $items = $collection->toArray();
     $bad = [];
     foreach ($items as $i => $v) {
         if ($i < $this->from || $i >= $this->to) {
             $bad[] = $i;
         }
     }
     $collection->removeAtMany($bad);
 }
 public function execute(BaseCollection &$collection)
 {
     $bad = [];
     /* @var $closure \Closure */
     $closure = $this->closure;
     $items = $collection->toArray();
     foreach ($items as $i => $v) {
         if (!$closure($v)) {
             $bad[] = $i;
         }
     }
     $collection->removeAtMany($bad);
 }
 public function parseCollection(BaseCollection &$collection)
 {
     $key = $collection->getUniqueKey();
     if (isset(self::$collectionCache[$key]) && !empty(self::$collectionCache[$key])) {
         return self::$collectionCache[$key];
     }
     if ($collection->isEmpty()) {
         return [];
     }
     \Debugbar::startMeasure('applyFilters', 'Применяем фильтры (' . count($collection->getFilters()) . ')');
     /** @var BaseCollectionFilter $filter */
     foreach ($collection->getFilters() as $filter) {
         $filter->execute($collection);
     }
     \Debugbar::stopMeasure('applyFilters');
     $result = [];
     \Debugbar::startMeasure('parseItems', 'Парсим предметы (' . $collection->size() . ')');
     foreach ($collection->toArray() as $itemInfo) {
         $item = $this->parseItem($itemInfo);
         $result[] = $item;
     }
     \Debugbar::stopMeasure('parseItems');
     self::$collectionCache[$key] = $result;
     return $result;
 }
Пример #4
0
 public function __construct(array $items, ItemMarketPriceHelper $marketPriceHelper)
 {
     parent::__construct($items);
     $this->collectionParser = new ItemCollectionParser($marketPriceHelper);
 }