Exemplo n.º 1
0
 protected function initialize()
 {
     if ($this->initialized) {
         return;
     }
     $items = $this->items;
     // Handle search
     if (isset($this->searchExpression)) {
         $searchCallback = $this->buildExpressionCallback($this->searchExpression);
         $items = array_filter($items, $searchCallback);
     }
     // Handle filters
     if (isset($this->filterExpression)) {
         $filterCallback = $this->buildExpressionCallback($this->filterExpression);
         $items = array_filter($items, $filterCallback);
     }
     // @TODO Handle sort
     // Handle pagination
     if (isset($this->limitPerPage)) {
         $paginator = new ArrayPaginator($items);
         $paginator->setLimitPerPage($this->limitPerPage)->setRangeLimit($this->rangeLimit)->setPage($this->page);
         $this->iterator = $paginator->getIterator();
         $this->paginator = $paginator;
     } else {
         $this->iterator = new \ArrayIterator($items);
         $this->paginator = null;
     }
     $this->initialized = true;
 }