diff options
author | Roeland Jago Douma <rullzer@owncloud.com> | 2015-10-23 21:39:52 +0300 |
---|---|---|
committer | Roeland Jago Douma <rullzer@owncloud.com> | 2015-10-23 22:47:11 +0300 |
commit | 7de08801456a63247e6456e9f4fff73b45e11012 (patch) | |
tree | 3ad8c8fa3da62a2623f235cdad83d09f8dbc874e /guzzlehttp | |
parent | ede581ec5bb12a920b9aa5d14d071f65620ef73b (diff) |
Update guzzlehttp/guzzle to 5.3.0
Also update depenencie react/promise to 2.2.1
Diffstat (limited to 'guzzlehttp')
-rw-r--r-- | guzzlehttp/guzzle/src/Client.php | 89 | ||||
-rw-r--r-- | guzzlehttp/guzzle/src/ClientInterface.php | 2 | ||||
-rw-r--r-- | guzzlehttp/guzzle/src/Event/AbstractRequestEvent.php | 2 | ||||
-rw-r--r-- | guzzlehttp/guzzle/src/Event/Emitter.php | 2 | ||||
-rw-r--r-- | guzzlehttp/guzzle/src/Exception/RequestException.php | 2 | ||||
-rw-r--r-- | guzzlehttp/guzzle/src/Message/MessageFactoryInterface.php | 4 | ||||
-rw-r--r-- | guzzlehttp/guzzle/src/Message/Request.php | 2 | ||||
-rw-r--r-- | guzzlehttp/guzzle/src/Pool.php | 2 | ||||
-rw-r--r-- | guzzlehttp/guzzle/src/Subscriber/Mock.php | 15 | ||||
-rw-r--r-- | guzzlehttp/guzzle/src/Url.php | 4 | ||||
-rw-r--r-- | guzzlehttp/guzzle/src/Utils.php | 68 |
11 files changed, 111 insertions, 81 deletions
diff --git a/guzzlehttp/guzzle/src/Client.php b/guzzlehttp/guzzle/src/Client.php index f1779eb4..b5ed11ff 100644 --- a/guzzlehttp/guzzle/src/Client.php +++ b/guzzlehttp/guzzle/src/Client.php @@ -6,10 +6,6 @@ use GuzzleHttp\Message\MessageFactory; use GuzzleHttp\Message\MessageFactoryInterface; use GuzzleHttp\Message\RequestInterface; use GuzzleHttp\Message\FutureResponse; -use GuzzleHttp\Ring\Client\Middleware; -use GuzzleHttp\Ring\Client\CurlMultiHandler; -use GuzzleHttp\Ring\Client\CurlHandler; -use GuzzleHttp\Ring\Client\StreamHandler; use GuzzleHttp\Ring\Core; use GuzzleHttp\Ring\Future\FutureInterface; use GuzzleHttp\Exception\RequestException; @@ -89,75 +85,12 @@ class Client implements ClientInterface } elseif (isset($config['adapter'])) { $handler = $config['adapter']; } else { - $handler = static::getDefaultHandler(); + $handler = Utils::getDefaultHandler(); } $this->fsm = new RequestFsm($handler, $this->messageFactory); } } - /** - * Create a default handler to use based on the environment - * - * @throws \RuntimeException if no viable Handler is available. - */ - public static function getDefaultHandler() - { - $default = $future = $streaming = null; - - if (extension_loaded('curl')) { - $config = [ - 'select_timeout' => getenv('GUZZLE_CURL_SELECT_TIMEOUT') ?: 1 - ]; - if ($maxHandles = getenv('GUZZLE_CURL_MAX_HANDLES')) { - $config['max_handles'] = $maxHandles; - } - $future = new CurlMultiHandler($config); - if (function_exists('curl_reset')) { - $default = new CurlHandler(); - } - } - - if (ini_get('allow_url_fopen')) { - $streaming = new StreamHandler(); - } - - if (!($default = ($default ?: $future) ?: $streaming)) { - throw new \RuntimeException('Guzzle requires cURL, the ' - . 'allow_url_fopen ini setting, or a custom HTTP handler.'); - } - - $handler = $default; - - if ($streaming && $streaming !== $default) { - $handler = Middleware::wrapStreaming($default, $streaming); - } - - if ($future) { - $handler = Middleware::wrapFuture($handler, $future); - } - - return $handler; - } - - /** - * Get the default User-Agent string to use with Guzzle - * - * @return string - */ - public static function getDefaultUserAgent() - { - static $defaultAgent = ''; - if (!$defaultAgent) { - $defaultAgent = 'Guzzle/' . self::VERSION; - if (extension_loaded('curl')) { - $defaultAgent .= ' curl/' . curl_version()['version']; - } - $defaultAgent .= ' PHP/' . PHP_VERSION; - } - - return $defaultAgent; - } - public function getDefaultOption($keyOrPath = null) { return $keyOrPath === null @@ -345,11 +278,11 @@ class Client implements ClientInterface // Add the default user-agent header if (!isset($this->defaults['headers'])) { $this->defaults['headers'] = [ - 'User-Agent' => static::getDefaultUserAgent() + 'User-Agent' => Utils::getDefaultUserAgent() ]; } elseif (!Core::hasHeader($this->defaults, 'User-Agent')) { // Add the User-Agent header if one was not already set - $this->defaults['headers']['User-Agent'] = static::getDefaultUserAgent(); + $this->defaults['headers']['User-Agent'] = Utils::getDefaultUserAgent(); } } @@ -400,4 +333,20 @@ class Client implements ClientInterface { Pool::send($this, $requests, $options); } + + /** + * @deprecated Use GuzzleHttp\Utils::getDefaultHandler + */ + public static function getDefaultHandler() + { + return Utils::getDefaultHandler(); + } + + /** + * @deprecated Use GuzzleHttp\Utils::getDefaultUserAgent + */ + public static function getDefaultUserAgent() + { + return Utils::getDefaultUserAgent(); + } } diff --git a/guzzlehttp/guzzle/src/ClientInterface.php b/guzzlehttp/guzzle/src/ClientInterface.php index fac88645..63f0174d 100644 --- a/guzzlehttp/guzzle/src/ClientInterface.php +++ b/guzzlehttp/guzzle/src/ClientInterface.php @@ -11,7 +11,7 @@ use GuzzleHttp\Message\ResponseInterface; */ interface ClientInterface extends HasEmitterInterface { - const VERSION = '5.2.0'; + const VERSION = '5.3.0'; /** * Create and return a new {@see RequestInterface} object. diff --git a/guzzlehttp/guzzle/src/Event/AbstractRequestEvent.php b/guzzlehttp/guzzle/src/Event/AbstractRequestEvent.php index 8c8fbc94..8a6ee47c 100644 --- a/guzzlehttp/guzzle/src/Event/AbstractRequestEvent.php +++ b/guzzlehttp/guzzle/src/Event/AbstractRequestEvent.php @@ -54,7 +54,7 @@ abstract class AbstractRequestEvent extends AbstractEvent /** * @return Transaction */ - protected function getTransaction() + public function getTransaction() { return $this->transaction; } diff --git a/guzzlehttp/guzzle/src/Event/Emitter.php b/guzzlehttp/guzzle/src/Event/Emitter.php index 536317a9..4e44f45e 100644 --- a/guzzlehttp/guzzle/src/Event/Emitter.php +++ b/guzzlehttp/guzzle/src/Event/Emitter.php @@ -47,7 +47,7 @@ class Emitter implements EmitterInterface $eventName ) use (&$onceListener, $eventName, $listener, $priority) { $this->removeListener($eventName, $onceListener); - $listener($event, $eventName, $this); + $listener($event, $eventName); }; $this->on($eventName, $onceListener, $priority); diff --git a/guzzlehttp/guzzle/src/Exception/RequestException.php b/guzzlehttp/guzzle/src/Exception/RequestException.php index f81d2483..3f052d36 100644 --- a/guzzlehttp/guzzle/src/Exception/RequestException.php +++ b/guzzlehttp/guzzle/src/Exception/RequestException.php @@ -34,7 +34,7 @@ class RequestException extends TransferException } /** - * Wrap non-RequesExceptions with a RequestException + * Wrap non-RequestExceptions with a RequestException * * @param RequestInterface $request * @param \Exception $e diff --git a/guzzlehttp/guzzle/src/Message/MessageFactoryInterface.php b/guzzlehttp/guzzle/src/Message/MessageFactoryInterface.php index 57c43e5c..86ae9c7e 100644 --- a/guzzlehttp/guzzle/src/Message/MessageFactoryInterface.php +++ b/guzzlehttp/guzzle/src/Message/MessageFactoryInterface.php @@ -33,7 +33,7 @@ interface MessageFactoryInterface * * This method accepts an associative array of request options. Below is a * brief description of each parameter. See - * http://docs.guzzlephp.org/clients.html#request-options for a much more + * http://docs.guzzlephp.org/en/latest/clients.html#request-options for a much more * in-depth description of each parameter. * * - headers: Associative array of headers to add to the request @@ -65,7 +65,7 @@ interface MessageFactoryInterface * @param array $options Array of options to apply to the request * * @return RequestInterface - * @link http://docs.guzzlephp.org/clients.html#request-options + * @link http://docs.guzzlephp.org/en/latest/clients.html#request-options */ public function createRequest($method, $url, array $options = []); } diff --git a/guzzlehttp/guzzle/src/Message/Request.php b/guzzlehttp/guzzle/src/Message/Request.php index 4dbe32e6..38714af8 100644 --- a/guzzlehttp/guzzle/src/Message/Request.php +++ b/guzzlehttp/guzzle/src/Message/Request.php @@ -51,7 +51,7 @@ class Request extends AbstractMessage implements RequestInterface if ($headers) { foreach ($headers as $key => $value) { - $this->setHeader($key, $value); + $this->addHeader($key, $value); } } } diff --git a/guzzlehttp/guzzle/src/Pool.php b/guzzlehttp/guzzle/src/Pool.php index 49d9940f..7b9d83a4 100644 --- a/guzzlehttp/guzzle/src/Pool.php +++ b/guzzlehttp/guzzle/src/Pool.php @@ -328,6 +328,6 @@ class Pool implements FutureInterface $result = $value instanceof ResponseInterface ? ['request' => $request, 'response' => $value, 'error' => null] : ['request' => $request, 'response' => null, 'error' => $value]; - $this->deferred->progress($result); + $this->deferred->notify($result); } } diff --git a/guzzlehttp/guzzle/src/Subscriber/Mock.php b/guzzlehttp/guzzle/src/Subscriber/Mock.php index 39a3c442..2af4d375 100644 --- a/guzzlehttp/guzzle/src/Subscriber/Mock.php +++ b/guzzlehttp/guzzle/src/Subscriber/Mock.php @@ -7,6 +7,7 @@ use GuzzleHttp\Event\BeforeEvent; use GuzzleHttp\Exception\RequestException; use GuzzleHttp\Message\MessageFactory; use GuzzleHttp\Message\ResponseInterface; +use GuzzleHttp\Stream\StreamInterface; /** * Queues mock responses or exceptions and delivers mock responses or @@ -60,6 +61,20 @@ class Mock implements SubscriberInterface, \Countable } } + $saveTo = $event->getRequest()->getConfig()->get('save_to'); + + if (null !== $saveTo) { + $body = $item->getBody(); + + if (is_resource($saveTo)) { + fwrite($saveTo, $body); + } elseif (is_string($saveTo)) { + file_put_contents($saveTo, $body); + } elseif ($saveTo instanceof StreamInterface) { + $saveTo->write($body); + } + } + $event->intercept($item); } diff --git a/guzzlehttp/guzzle/src/Url.php b/guzzlehttp/guzzle/src/Url.php index a81bad2f..637f60c2 100644 --- a/guzzlehttp/guzzle/src/Url.php +++ b/guzzlehttp/guzzle/src/Url.php @@ -138,7 +138,7 @@ class Url $query = null, $fragment = null ) { - $this->scheme = $scheme; + $this->scheme = strtolower($scheme); $this->host = $host; $this->port = $port; $this->username = $username; @@ -234,7 +234,7 @@ class Url $this->port = null; } - $this->scheme = $scheme; + $this->scheme = strtolower($scheme); } /** diff --git a/guzzlehttp/guzzle/src/Utils.php b/guzzlehttp/guzzle/src/Utils.php index 285fe30b..1c896610 100644 --- a/guzzlehttp/guzzle/src/Utils.php +++ b/guzzlehttp/guzzle/src/Utils.php @@ -1,6 +1,11 @@ <?php namespace GuzzleHttp; +use GuzzleHttp\Ring\Client\CurlHandler; +use GuzzleHttp\Ring\Client\CurlMultiHandler; +use GuzzleHttp\Ring\Client\StreamHandler; +use GuzzleHttp\Ring\Client\Middleware; + /** * Utility methods used throughout Guzzle. */ @@ -61,8 +66,14 @@ final class Utils */ public static function setPath(&$data, $path, $value) { - $current =& $data; $queue = explode('/', $path); + // Optimization for simple sets. + if (count($queue) === 1) { + $data[$path] = $value; + return; + } + + $current =& $data; while (null !== ($key = array_shift($queue))) { if (!is_array($current)) { throw new \RuntimeException("Trying to setPath {$path}, but " @@ -142,4 +153,59 @@ final class Utils return $data; } + + /** + * Get the default User-Agent string to use with Guzzle + * + * @return string + */ + public static function getDefaultUserAgent() + { + static $defaultAgent = ''; + if (!$defaultAgent) { + $defaultAgent = 'Guzzle/' . ClientInterface::VERSION; + if (extension_loaded('curl')) { + $defaultAgent .= ' curl/' . curl_version()['version']; + } + $defaultAgent .= ' PHP/' . PHP_VERSION; + } + + return $defaultAgent; + } + + /** + * Create a default handler to use based on the environment + * + * @throws \RuntimeException if no viable Handler is available. + */ + public static function getDefaultHandler() + { + $default = $future = null; + + if (extension_loaded('curl')) { + $config = [ + 'select_timeout' => getenv('GUZZLE_CURL_SELECT_TIMEOUT') ?: 1 + ]; + if ($maxHandles = getenv('GUZZLE_CURL_MAX_HANDLES')) { + $config['max_handles'] = $maxHandles; + } + if (function_exists('curl_reset')) { + $default = new CurlHandler(); + $future = new CurlMultiHandler($config); + } else { + $default = new CurlMultiHandler($config); + } + } + + if (ini_get('allow_url_fopen')) { + $default = !$default + ? new StreamHandler() + : Middleware::wrapStreaming($default, new StreamHandler()); + } elseif (!$default) { + throw new \RuntimeException('Guzzle requires cURL, the ' + . 'allow_url_fopen ini setting, or a custom HTTP handler.'); + } + + return $future ? Middleware::wrapFuture($default, $future) : $default; + } } |