Overview

Packages

  • Http

Classes

  • Horde_Http
  • Horde_Http_Client
  • Horde_Http_Exception
  • Horde_Http_Request_Base
  • Horde_Http_Request_Curl
  • Horde_Http_Request_Factory
  • Horde_Http_Request_Fopen
  • Horde_Http_Request_Mock
  • Horde_Http_Request_Peclhttp
  • Horde_Http_Response_Base
  • Horde_Http_Response_Curl
  • Horde_Http_Response_Fopen
  • Horde_Http_Response_Mock
  • Horde_Http_Response_Peclhttp
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * Copyright 2007-2012 Horde LLC (http://www.horde.org/)
  4:  *
  5:  * @author   Chuck Hagenbuch <chuck@horde.org>
  6:  * @license  http://www.horde.org/licenses/bsd BSD
  7:  * @category Horde
  8:  * @package  Http
  9:  */
 10: 
 11: /**
 12:  * @author   Chuck Hagenbuch <chuck@horde.org>
 13:  * @license  http://www.horde.org/licenses/bsd BSD
 14:  * @category Horde
 15:  * @package  Http
 16:  */
 17: abstract class Horde_Http_Request_Base
 18: {
 19:     /**
 20:      * Request headers
 21:      * @var array
 22:      */
 23:     protected $_headers = array();
 24: 
 25:     /**
 26:      * @var array
 27:      */
 28:     protected $_options = array();
 29: 
 30:     /**
 31:      * Constructor
 32:      */
 33:     public function __construct($options = array())
 34:     {
 35:         $this->setOptions($options);
 36:     }
 37: 
 38:     public function setOptions($options = array())
 39:     {
 40:         $this->_options = array_merge($this->getDefaultOptions(), $options);
 41:     }
 42: 
 43:     public function getDefaultOptions()
 44:     {
 45:         return array(
 46:             'uri' => null,
 47:             'method' => 'GET',
 48:             'data' => null,
 49:             'username' => '',
 50:             'password' => '',
 51:             'authenticationScheme' => Horde_Http::AUTH_ANY,
 52:             'proxyServer' => null,
 53:             'proxyPort' => null,
 54:             'proxyType' => Horde_Http::PROXY_HTTP,
 55:             'proxyUsername' => null,
 56:             'proxyPassword' => null,
 57:             'proxyAuthenticationScheme' => Horde_Http::AUTH_BASIC,
 58:             'timeout' => 5,
 59:             'redirects' => 5,
 60:         );
 61:     }
 62: 
 63:     /**
 64:      * Send this HTTP request
 65:      *
 66:      * @return Horde_Http_Response_Base
 67:      */
 68:     abstract public function send();
 69: 
 70:     /**
 71:      * Get an adapter parameter
 72:      *
 73:      * @param string $name  The parameter to get.
 74:      * @return mixed        Parameter value.
 75:      */
 76:     public function __get($name)
 77:     {
 78:         switch ($name) {
 79:         case 'headers':
 80:             return $this->_headers;
 81:         }
 82: 
 83:         return isset($this->_options[$name]) ? $this->_options[$name] : null;
 84:     }
 85: 
 86:     /**
 87:      * Set a request parameter
 88:      *
 89:      * @param string $name   The parameter to set.
 90:      * @param mixed  $value  Parameter value.
 91:      */
 92:     public function __set($name, $value)
 93:     {
 94:         switch ($name) {
 95:         case 'headers':
 96:             $this->setHeaders($value);
 97:             break;
 98:         }
 99: 
100:         $this->_options[$name] = $value;
101:     }
102: 
103:     /**
104:      * Set one or more headers
105:      *
106:      * @param mixed $headers A hash of header + value pairs, or a single header name
107:      * @param string $value  A header value
108:      */
109:     public function setHeaders($headers, $value = null)
110:     {
111:         if (!is_array($headers)) {
112:             $headers = array($headers => $value);
113:         }
114: 
115:         foreach ($headers as $header => $value) {
116:             $this->_headers[$header] = $value;
117:         }
118:     }
119: 
120:     /**
121:      * Get the current value of $header
122:      *
123:      * @param string $header Header name to get
124:      * @return string $header's current value
125:      */
126:     public function getHeader($header)
127:     {
128:         return isset($this->_headers[$header]) ? $this->_headers[$header] : null;
129:     }
130: }
131: 
API documentation generated by ApiGen