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; }
public function __construct(array $items, ItemMarketPriceHelper $marketPriceHelper) { parent::__construct($items); $this->collectionParser = new ItemCollectionParser($marketPriceHelper); }