0.null, false, and "_guzzle_blank_" all now serialize as an empty value
with no trailing "=". See dc1d824277."0" can now be added as a URL path$certificateAuthority to false in
Guzzle\Http\ClientInterface::setSslVerification()"0"HTTP/1.0$ref attribute in service descriptions to merge over any existing parameters of a schema (rather than
clobbering everything).=.
For example foo&bar=baz is now correctly parsed and recognized as foo&bar=baz rather than foo=&bar=baz.69fcc1e)CURLOPT_TIMEOUT_MSsetRegex() method to match the docsdebug request parameter now checks if it is truthy rather than if it existsdebug request parameter to true shows verbose cURL output instead of using the LogPlugin29797e5)MultiTransferException and
CommandTransferException.additionalParameters of a response to false is now honored when parsing responses with a service description\Iterator instead of \Traversable.Guzzle\Common\AbstractHasDispatcher::dispatch() now returns the event that was dispatchedGuzzle\Http\QueryString::factory() now guesses the most appropriate query aggregator to used based on the input.
See https://github.com/guzzle/guzzle/issues/379operation.parse_class event. See
https://github.com/guzzle/guzzle/pull/380<> and quotescert and ssl_key as request optionsHost header can now diverge from the host part of a URL if the header is set manuallyGuzzle\Service\Command\LocationVisitor\Request\XmlVisitor was rewritten to change from using SimpleXML to XMLWriterfalse if Guzzle\Http\EntityBody::getContentMd5() failsContent-MD5 on a command if calculating the Content-MD5 fails via the CommandContentMd5Plugin\Guzzle.
See Guzzle\Http\StaticClient::mount.command.request_options to Guzzle\Service\Command\AbstractCommand to pass request options to requests
created by a command (e.g. custom headers, query string variables, timeout settings, etc).Guzzle\Stream\PhpStreamRequestFactory will now be set if Content-Length is returned in the
headers of a responseGuzzle\Common\Collection::setPath($path, $value) to set a value into an array using a nested key
(e.g. $collection->setPath('foo/baz/bar', 'test'); echo $collection['foo']['bar']['bar'];)Guzzle\Http\Message\Response now implements \SerializableGuzzle\Cache\CacheAdapterFactory::fromCache() to more easily create cache adaptersGuzzle\Service\ClientInterface::execute() now accepts an array, single command, or TraversableGuzzle\Http\Message\Header\Link::addLink()Guzzle\Stream\Stream using fstat() and caching the sizeGuzzle\Common\Exception\ExceptionCollection now creates a more readable exception messageGuzzle\Http\Message\AbstractMessage::getTokenizedHeader().
Now triggering an E_USER_DEPRECATED warning when used. Use $message->getHeader()->parseParams().Guzzle\Common\Collection$options argument to the end of the following methods of Guzzle\Http\ClientInterface:
createRequest, head, delete, put, patch, post, options, prepareRequest$options argument to the end of Guzzle\Http\Message\Request\RequestFactoryInterface::createRequest()applyOptions() method to Guzzle\Http\Message\Request\RequestFactoryInterfaceGuzzle\Http\ClientInterface::get($uri = null, $headers = null, $body = null) to
Guzzle\Http\ClientInterface::get($uri = null, $headers = null, $options = array()). You can still pass in a
resource, string, or EntityBody into the $options parameter to specify the download location of the response.Guzzle\Common\Collection::__construct($data) to no longer accepts a null value for $data but a
default array()Guzzle\Stream\StreamInterface::isRepeatableGuzzle\Http\ClientInterface::setDefaultHeaders(). Use
$client->getConfig()->setPath('request.options/headers/{header_name}', 'value'). or
$client->getConfig()->setPath('request.options/headers', array('header_name' => 'value'))`.Guzzle\Http\ClientInterface::getDefaultHeaders(). Use $client->getConfig()->getPath('request.options/headers').Guzzle\Http\ClientInterface::expandTemplate()Guzzle\Http\ClientInterface::setRequestFactory()Guzzle\Http\ClientInterface::getCurlMulti()Guzzle\Http\Message\RequestInterface::canCacheGuzzle\Http\Message\RequestInterface::setIsRedirectGuzzle\Http\Message\RequestInterface::isRedirectGuzzle\Http\Client::expandTemplate and getUriTemplate protected methods.Guzzle\Common\Version::$emitWarnings to true.Guzzle\Http\Message\Request::isResponseBodyRepeatable() as deprecated. Use
$request->getResponseBody()->isRepeatable() instead.Guzzle\Http\Message\Request::canCache() as deprecated. Use
Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest() instead.Guzzle\Http\Message\Request::canCache() as deprecated. Use
Guzzle\Plugin\Cache\DefaultCanCacheStrategy->canCacheRequest() instead.Guzzle\Http\Message\Request::setIsRedirect() as deprecated. Use the HistoryPlugin instead.Guzzle\Http\Message\Request::isRedirect() as deprecated. Use the HistoryPlugin instead.Guzzle\Cache\CacheAdapterFactory::factory() as deprecatedGuzzle\Http\Client as deprecated. Use [request.options][params].Guzzle\Service\Client::enableMagicMethods() as deprecated. Magic methods can no longer be disabled on a Guzzle\Service\Client.Guzzle\Service\Client::getDefaultHeaders() as deprecated. Use $client->getConfig()->getPath('request.options/headers')`.Guzzle\Service\Client::setDefaultHeaders() as deprecated. Use $client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`.Guzzle\Parser\Url\UrlParser as deprecated. Just use PHP's parse_url() and percent encode your UTF-8.Guzzle\Common\Collection::inject() as deprecated.Guzzle\Plugin\CurlAuth\CurlAuthPlugin as deprecated. Use $client->getConfig()->setPath('request.options/auth', array('user', 'pass', 'Basic|Digest');CacheStorageInterface::cache($key, Response $response, $ttl = null) has changed to cache(RequestInterface
$request, Response $response);CacheStorageInterface::fetch($key) has changed to fetch(RequestInterface $request);CacheStorageInterface::delete($key) has changed to delete(RequestInterface $request);CacheStorageInterface::purge($url)DefaultRevalidation::__construct(CacheKeyProviderInterface $cacheKey, CacheStorageInterface $cache, CachePlugin
$plugin) has changed to DefaultRevalidation::__construct(CacheStorageInterface $cache,
CanCacheStrategyInterface $canCache = null)RevalidationInterface::shouldRevalidate(RequestInterface $request, Response $response)Guzzle\Service\Command\CommandInterface typehint now request a
Guzzle\Service\Command\ArrayCommandInterface.Guzzle\Http\Message\RequestInterface::startResponse() to the RequestInterface to handle injecting a response
on a request while the request is still being transferredGuzzle\Service\Command\CommandInterface now extends from ToArrayInterface and ArrayAccessGuzzle\Log\MessageFormatter now properly writes "total_time" and "connect_time" valuesResponse::getPreviousResponse() (method signature still exists, but it'sdeprecated). Use the
HistoryPlugin for a history.responseBody alias for the response_body locationgetEffectiveUrl() and getRedirectCount() to Response objectsTransfer-Encoding: chunked header when a Content-Length is presentnumber type to service descriptions.oauth_token if the value is null in the OauthPlugin.command.after_prepare eventoauth_callback parameter to the OauthPluginadditionalParameters in service descriptions to define how custom parameters are serialized.Guzzle\Http\Message\Response::json() now allows scalar values to be returnedGuzzle\Http\Message\Response where wrapping quotes were stripped from getEtag()Guzzle\Http\Utils classGuzzle\Stream\Stream::getWrapper() and Guzzle\Stream\Stream::getSteamType() are no longer converted to
lowercaseGuzzle\Service\Command\ResponseClassInterface5e0ff2ef20)extends attributes to service description parametersGuzzle\Http\Message\Request::setResponseBody()Guzzle\Common\Collection::inject method\AppendIteratorcommands to operationsjson parameter locationbody_as_string in a request's curl options to enable.getParamNames() and hasParam()Guzzle\Service\Command\AbstractCommand::getRequestHeaders()+ is now treated as an encoded space when parsing query stringscurl. prefixed parameters