request = $request; $this->get = $get; $this->post = $post; } function isSatisfiedBy($request) { $http_request = $request->getHttpRequest(); if(!$this->_matches($this->request, $http_request->getRequest())) return false; if(!$this->_matches($this->get, $http_request->getGet())) return false; if(!$this->_matches($this->post, $http_request->getPost())) return false; return true; } function _matches($expected, $variable) { if(is_array($expected)) { foreach($expected as $key => $value) { if(!isset($variable[$key]) || ($value != '*' && $value != $variable[$key])) return false; } } elseif($expected == '!' && !empty($variable)) return false; elseif($expected == '*' && empty($variable)) return false; return true; } } ?>