/** * @param $id * @return null|object */ public function get($id) { $criteria = $this->getCriteria($id); $result = $this->repository->filter($this->getFilter($criteria), $this->getParams($this->apiResource, $criteria)); switch (count($result)) { case 0: $result = null; break; case 1: $result = $result[0]; break; default: // TODO provide a more meaningful message throw new \LogicException('Something\'s fishy'); break; } return $result; }