/** * @param int $userId * @param string $type * @param string $role * @param string $sortColumn * @param int $sortDirection * @param int $offset * @param int $limit * * @return array * @todo: integrate better way of caching */ public function getMyGroups($userId, $type = null, $role = null, $sortColumn = 'name', $sortDirection = 0, $offset = 0, $limit = 5) { static $cache; $key = md5(json_encode(func_get_args())); if (isset($cache[$key])) { return $cache[$key]; } if ($role !== null) { $memberships = $this->client->findUserMembershipsForRole($userId, $role, $sortColumn, $sortDirection, $type, $offset, $limit); } else { $memberships = $this->client->findGroupedUserMemberships($userId, $sortColumn, $sortDirection, $type, $offset, $limit); } $cache[$key] = $memberships; return $memberships; }