[Solar-svn] Revision 3219
pmjones at solarphp.com
pmjones at solarphp.com
Thu Jun 12 17:10:15 CDT 2008
Solar_Http_Request_Adapter: [CHG] In the interest of setting header values in an array loop, the setHeader() method no longer prevents setting of content-type, http, referer, or user-agent, and instead calls the related methods internally. Still prevents setting of cookie values, though.
Modified: trunk/Solar/Http/Request/Adapter.php
===================================================================
--- trunk/Solar/Http/Request/Adapter.php 2008-06-12 19:07:23 UTC (rev 3218)
+++ trunk/Solar/Http/Request/Adapter.php 2008-06-12 22:10:15 UTC (rev 3219)
@@ -486,17 +486,9 @@
*
* Sets a header value in $this->_headers for sending at fetch() time.
*
- * This method will not set certain headers; use the provided methods
+ * This method will not set cookie values; use setCookie() or setCookies()
* instead.
*
- * | Header | Method |
- * | ------------- | -------------------------------------- |
- * | Content-Type | [[setContentType()]], [[setCharset()]] |
- * | Cookie | [[setCookie()]] |
- * | HTTP | [[setVersion()]] |
- * | Referer | [[setReferer()]] |
- * | User-Agent | [[setUserAgent()]] |
- *
* @param string $key The header label, such as "X-Foo-Bar".
*
* @param string $val The value for the header. When null or false,
@@ -513,21 +505,27 @@
*/
public function setHeader($key, $val, $replace = true)
{
- // normalize the header key
+ // normalize the header key and keep a lower-case version
$key = Solar_Mime::headerLabel($key);
+ $low = strtolower($key);
- // disallow certain headers
- $lower = strtolower($key);
- $notok = array(
- 'content-type' => 'setContentType()',
- 'cookie' => 'setCookie()',
- 'http' => 'setVersion()',
- 'referer' => 'setReferer()',
- 'user-agent' => 'setUserAgent()',
+ // use special methods when available
+ $special = array(
+ 'content-type' => 'setContentType',
+ 'http' => 'setVersion',
+ 'referer' => 'setReferer',
+ 'user-agent' => 'setUserAgent',
);
- if (! empty($notok[$lower])) {
+
+ if (! empty($special[$low])) {
+ $method = $special[$low];
+ return $this->$method($val);
+ }
+
+ // don't allow setting of cookies
+ if ($low == 'cookie') {
throw $this->_exception('ERR_USE_OTHER_METHOD', array(
- $lower => $notok[$lower],
+ 'cookie' => 'setCookie() or setCookies()',
));
}
More information about the Solar-svn
mailing list