keyValueFactory = $key_value_factory; } /** * {@inheritdoc} */ public function execute() { // Load the relevant records. $records = $this->keyValueFactory->get('entity_storage__' . $this->entityTypeId)->getAll(); // Apply conditions. $result = $this->condition->compile($records); // Apply sort settings. foreach ($this->sort as $sort) { $direction = $sort['direction'] == 'ASC' ? -1 : 1; $field = $sort['field']; uasort($result, function ($a, $b) use ($field, $direction) { return ($a[$field] <= $b[$field]) ? $direction : -$direction; }); } // Let the pager do its work. $this->initializePager(); if ($this->range) { $result = array_slice($result, $this->range['start'], $this->range['length'], TRUE); } if ($this->count) { return count($result); } // Create the expected structure of entity_id => entity_id. $entity_ids = array_keys($result); return array_combine($entity_ids, $entity_ids); } }