self::HEAD, 'GET' => self::GET, 'POST' => self::POST, 'PUT' => self::PUT, 'DELETE' => self::DELETE, 'PATCH' => self::PATCH, 'OPTIONS' => self::OPTIONS, 'TRACE' => self::TRACE, ); /** * @param $uri * @param null $payload * @param array $options * @return mixed */ abstract function post($uri, $payload = null, array $options = array()); /** * @param $uri * @param null $payload * @param array $options * @return mixed */ abstract function patch($uri, $payload = null, array $options = array()); /** * @param $uri * @param null $payload * @param array $options * @return mixed */ abstract function put($uri, $payload = null, array $options = array()); /** * @param $uri * @param array $options * @return mixed */ abstract function get($uri, array $options = array()); /** * @param $uri * @param array $options * @return mixed */ abstract function head($uri, array $options = array()); /** * @param $uri * @param array $options * @return mixed */ abstract function delete($uri, array $options = array()); /** * @param $uri * @param array $options * @return mixed */ abstract function options($uri, array $options = array()); /** * @param $uri * @param array $options * @return mixed */ abstract function trace($uri, array $options = array()); /** * @param $method * @return bool */ public static function hasBody($method){ return in_array($method, array(self::POST, self::PUT, self::PATCH, self::OPTIONS)); } }