1
0
mirror of https://github.com/guzzle/guzzle.git synced 2025-02-12 11:30:49 +01:00

request.params is deprecated. Use request.options/params. Adding params request option.

This commit is contained in:
Michael Dowling 2013-06-09 11:14:47 -07:00
parent 8234e2f781
commit 505bb7b665
7 changed files with 33 additions and 6 deletions

View File

@ -71,6 +71,7 @@ Next version
- Marked `Guzzle\Cache\CacheAdapterFactory::factory()` as deprecated
- Marked 'command.headers', 'command.response_body' and 'command.on_complete' as deprecated for AbstractCommand.
These will work through Guzzle 4.0
- Marked 'request.params' for `Guzzle\Http\Client` as deprecated. Use [request.options][params].
- Marked `Guzzle\Service\Client::enableMagicMethods()` as deprecated. Magic methods can no longer be disabled on a Guzzle\Service\Client.
- Marked `Guzzle\Service\Client::getDefaultHeaders()` as deprecated. Use $client->getConfig()->getPath('request.options/headers')`.
- Marked `Guzzle\Service\Client::setDefaultHeaders()` as deprecated. Use $client->getConfig()->setPath('request.options/headers/{header_name}', 'value')`.

View File

@ -23,8 +23,10 @@ use Guzzle\Http\Curl\CurlVersion;
*/
class Client extends AbstractHasDispatcher implements ClientInterface
{
const REQUEST_OPTIONS = 'request.options';
/** @deprecated Use [request.options][params] */
const REQUEST_PARAMS = 'request.params';
const REQUEST_OPTIONS = 'request.options';
const CURL_OPTIONS = 'curl.options';
const SSL_CERT_AUTHORITY = 'ssl.certificate_authority';
const DISABLE_REDIRECTS = RedirectPlugin::DISABLE;
@ -64,7 +66,9 @@ class Client extends AbstractHasDispatcher implements ClientInterface
public function __construct($baseUrl = '', $config = null)
{
if (!extension_loaded('curl')) {
// @codeCoverageIgnoreStart
throw new RuntimeException('The PHP cURL extension must be installed to use Guzzle.');
// @codeCoverageIgnoreEnd
}
$this->setConfig($config ?: new Collection());
$this->initSsl();
@ -386,6 +390,7 @@ class Client extends AbstractHasDispatcher implements ClientInterface
}
if ($params = $this->config[self::REQUEST_PARAMS]) {
Version::warn('request.params is deprecated. Use request.options to add default request options.');
$request->getParams()->overwriteWith($params);
}

View File

@ -283,6 +283,15 @@ class RequestFactory implements RequestFactoryInterface
$request->setResponseBody($value);
}
protected function visit_params(RequestInterface $request, $value, $flags)
{
if (!is_array($value)) {
throw new InvalidArgumentException('params value must be an array');
}
$request->getParams()->overwriteWith($value);
}
protected function visit_timeout(RequestInterface $request, $value, $flags)
{
$request->getCurlOptions()->set(CURLOPT_TIMEOUT_MS, $value * 1000);

View File

@ -82,6 +82,7 @@ interface RequestFactoryInterface
* "events": Associative array mapping event names to a closure or array of (priority, closure)
* "plugins": Array of plugins to add to the request
* "exceptions": Set to false to disable throwing exceptions on an HTTP level error (e.g. 404, 500, etc)
* "params": Set custom request data parameters on a request. (Note: these are not query string parameters)
* "timeout": Float describing the timeout of the request in seconds
* "connect_timeout": Float describing the number of seconds to wait while trying to connect. Use 0 to wait
* indefinitely.

View File

@ -33,8 +33,8 @@ class RedirectPlugin implements EventSubscriberInterface
{
return array(
'request.sent' => array('onRequestSent', 100),
'request.clone' => 'onRequestClone',
'request.before_send' => 'onRequestClone'
'request.clone' => 'cleanupRequest',
'request.before_send' => 'cleanupRequest'
);
}
@ -43,9 +43,11 @@ class RedirectPlugin implements EventSubscriberInterface
*
* @param Event $event Event emitted
*/
public function onRequestClone(Event $event)
public function cleanupRequest(Event $event)
{
$event['request']->getParams()->remove(self::REDIRECT_COUNT)->remove(self::PARENT_REQUEST);
$params = $event['request']->getParams();
unset($params[self::REDIRECT_COUNT]);
unset($params[self::PARENT_REQUEST]);
}
/**

View File

@ -225,6 +225,7 @@ class ClientTest extends \Guzzle\Tests\GuzzleTestCase
public function testClientAddsParamsToRequests()
{
Version::$emitWarnings = false;
$client = new Client('http://www.example.com', array(
'api' => 'v1',
'request.params' => array(
@ -235,6 +236,7 @@ class ClientTest extends \Guzzle\Tests\GuzzleTestCase
$request = $client->createRequest();
$this->assertEquals('bar', $request->getParams()->get('foo'));
$this->assertEquals('jar', $request->getParams()->get('baz'));
Version::$emitWarnings = true;
}
public function urlProvider()

View File

@ -550,7 +550,7 @@ class HttpRequestFactoryTest extends \Guzzle\Tests\GuzzleTestCase
public function inputValidation()
{
return array_map(function ($option) { return array($option); }, array(
'headers', 'query', 'cookies', 'auth', 'events', 'plugins'
'headers', 'query', 'cookies', 'auth', 'events', 'plugins', 'params'
));
}
@ -563,4 +563,11 @@ class HttpRequestFactoryTest extends \Guzzle\Tests\GuzzleTestCase
$client = new Client();
$client->get('/', array(), array($option => 'foo'));
}
public function testCanAddRequestParams()
{
$client = new Client();
$request = $client->put('/', array(), null, array('params' => array('foo' => 'test')));
$this->assertEquals('test', $request->getParams()->get('foo'));
}
}