http_request = $http_request; $this->user = $user; } function getUri() { return $this->http_request->getUri(); } function getHttpRequest() { return $this->http_request; } function getUser() { return $this->user; } function getHash() { $path = $this->http_request->getUriPath(); $extra = $this->_serializeHttpAttributes(); $extra .= $this->_serializeUserInfo(); return $path . ($extra ? '_' . md5($extra) : '') . '/'; } protected function _serializeHttpAttributes() { $uri = $this->http_request->getUri(); if(!$query = $uri->getQueryItems()) return ''; $flat = array(); lmbArrayHelper :: toFlatArray($query, $flat); ksort($flat); return serialize($flat); } protected function _serializeUserInfo() { $groups = $this->user->getGroups(); if(!$groups || array_values($groups) == $this->ignore_user_groups) return ''; sort($groups); return serialize($groups); } } ?>