1
0
mirror of https://github.com/guzzle/guzzle.git synced 2025-02-26 02:53:22 +01:00

31 Commits

Author SHA1 Message Date
Michael Dowling
cdb1da7d1a Properly merging URLs and removing dot segments based on RFC 3986 section 5.4. Closes #288 and #289. 2013-04-08 13:05:09 -07:00
Michael Dowling
a59e5a1695 Adding cacert file to phar and more cert validation
Addresses #280.
2013-03-31 23:35:10 -07:00
Michael Dowling
f2fd4bd43b Better normalization of User-Agent header when creating requests. Closes #264 2013-03-11 15:42:27 -07:00
Michael Dowling
ff6738a028 Refactoring setUserAgent and Removing Guzzle\Http\Utils
Guzzle\Http\Client::setUserAgent() now simply accepts a string as input
2013-02-22 22:07:19 -08:00
Francesc Rosàs
228b147d4d Don't reuse CurlMulti 2013-02-08 00:04:54 +01:00
David Abdemoulaie
3942ab7eff Merge remote-tracking branch 'origin/master' into refactor-url 2013-01-30 17:17:57 -06:00
David Abdemoulaie
d0f2aff142 Massive refactoring of Url, QueryString, and Request for RFC3986
TODO: ArrayCookieJar & tests are failing
2013-01-30 17:16:42 -06:00
Ben Parker
5e0ff2ef20 Changes value of CURLOPT_SSL_VERIFYHOST set in Http Client
1 as a value for CURLOPT_SSL_VERIFYHOST is deprecated
in libcurl 7.28.1, recommended value is now 2
2013-01-25 22:40:55 +00:00
Jeremy Lindblom
f9e12d2842 Updated client to not clobber user agent when setting default headers 2013-01-23 12:48:34 -08:00
Michael Dowling
68a33b6cbb Adding test to ensure URI template arrays are checked without warnings when the array is invalid 2012-11-17 15:29:14 -08:00
Michael Dowling
e7c553030a Adding PECL URI template parser
Keeping BC compatibility, but making ParserRegistry as singleton
Using the PECL URI template parser if the extension is loaded
2012-10-28 21:08:38 -07:00
Michael Dowling
1f06daf71e Adding the ability to control the certificate authority using configuration options on the client 2012-10-15 16:38:37 -07:00
Clay Loveless
38019b9131 Use Mozilla's CA bundle by default for SSL requests, and allow SSL configuration flexibility
PSR-2 fixes
2012-10-15 16:38:37 -07:00
Michael Dowling
4cf526336b Changing special options for clients. Adding global command options to service clients. 2012-10-15 16:38:35 -07:00
Michael Dowling
4c12cc079f Working on breaking the project into components each with its own composer.json file 2012-10-15 16:37:49 -07:00
Michael Dowling
063e0e3a0d PHP-CS-Fixer fixes to remove unused use statements and extra empty lines 2012-09-02 12:01:34 -07:00
Michael Dowling
a7ac55e4d1 [Http] Removing unnecessary __toString from Guzzle\Http\Client
Cleanup and perf tweaks to Guzzle\Http\Client
Using curl info from a curl handle in backoff logger when availble
2012-08-18 16:33:18 -07:00
Ben Selby
f1b55b27dc Allow configuration to be specified on a service descriptor
An example of this would be:
<param name="curl.CURLOPT_CONNECTTIMEOUT" default="100" />

This would override the configuration set by the instantiation:

new Client(
    'http://www.example.com',
    array('curl.CURLOPT_CONNECTTIMEOUT' => 100)
);
2012-07-13 22:48:09 +01:00
Michael Dowling
142e2460f2 [BC] Moving things around for subtree splits.
Moving Inflection into Common. Moving Guzzle\Http\Parser to Guzzle\Parser.
Adding composer.json files for each subtree split
Fixing failing curl test
2012-06-29 16:13:43 -07:00
Michael Dowling
e914e7a4e7 [Http] Debug curl options are no longer enabled by default
Set 'debug' to true on a request's curl options to enable debug verbose
output.
Closes #83
2012-06-24 11:55:44 -07:00
Michael Dowling
4a7f4870b7 [Http] Moving UriTemplates to Guzzle\Http\Parser\UriTemplate namespace (hoping for a C implementation at some point for PHP). 2012-05-14 13:48:52 -07:00
Michael Dowling
dc4c2d089b Getting rid of Guzzle\Common\Guzzle
Moving Guzzle\Common\Guzzle::inject to Guzzle\Common\Collection::inject
Adding Guzzle\Version class to give version information
Adding Guzzle\Http\Utils class to provide getDefaultUserAgent() and
getHttpDate()
Adding Guzzle\Curl\CurlVersion to manage caching curl_version() data
2012-05-12 00:28:36 -07:00
Michael Dowling
ff6cd9e5c0 Moving Guzzle\Guzzle to Guzzle\Common\Guzzle 2012-05-11 22:20:41 -07:00
Michael Dowling
dd7c8b6b35 Lots of refactoring for *greatly* improved performance (4-5x faster)
[Http] cache.* parameters should be prefixed with 'params.' now.

Adding the ability to set arbitrary curl options that don't map to constants (disable_wire, progress, etc)

Added a check to the CurlMulti object that prevents sending a request when the curl multi resource has been destroyed.  This could possibly happen when issuing requests from a destructor.

Adding the ability to disable type validation of configuration options

Adding a cache for all requests owned by a curl multi object

Creating the polling event external to the main CurlMulti loop

Hardening the CurlMulti class so that curl handles that are finished sending are removed from the multi handle.  Adding validation test

[Common] BC: Simplifying Guzzle\Common\Collection so that it is more performant.

[Service] Adding the ability to disable validation on the Inpector class.  Disabling validation on first instantiating commands so that defaults are added but nothing is check until attempting to execute a command.

Using class properties instead of a Collection for ApiCommand

BC: Using a custom validation system that allows a flyweight
implementation for much faster validation. No longer using Symfony2
Validation component.
2012-05-06 19:08:28 -07:00
Michael Dowling
19566ce334 [Http] Adding the ability to pass shared parameters to all requests created by a client by prefixing a configuration property with 'params.'
Moving cURL transfer stderr logic from the CurlMulti class and on to the CurlHandle class
Adding a fix for 'too many open files' that will allow the proper exception to be thrown when this occurs by ensuring that the exception is autoloaded before you run into the issue.
Cleaning up some CurlMulti error checking and adding the ability to allow a request to continue to be sent even after a curl transfer error occurs.
Adding the option to pass in a callable function to the ExponentialBackoffPlugin that determines whether or not a request failed and should be retried.  Adding a method to return a default array of failure codes and curl error numbers.
Adding the ability to retry specific curl handle transfer errors with the ExponentialBackoffPlugin
2012-04-24 18:22:20 -07:00
Michael Dowling
c0dc85de35 Breaking / Potentially breaking changes:
1. Adopting a marker interface for Guzzle exceptions.
        A. All exceptions emitted from Guzzle are now wrapped with a Guzzle namespaced exception.
        B. Guzzle\Common\GuzzleExceptionInterface was renamed to Guzzle\Common\GuzzleException
        C. Guzzle\Common\ExceptionCollection was renamed to Guzzle\Common\Exception\ExceptionCollection
    2. Using Header objects for Request and Response objects
        A. When you call $request->getHeader('X'), you will get back a Guzzle\Http\Message\Header object that contains all of the headers that case insensitively match.  This object can be cast to a string or iterated like an array.  You can pass true in the second argument to retrieve the header as a string.
        B. Removing the old Guzzle\Common\Collection based searching arguments from most of the request and response header methods.  All retrievals are case-insensitive and return Header objects.
    3. Changing the two headers added by the cache plugin to just one header with key and ttl.
    4. Changing Guzzle\Http\Message\Response::factory() to fromMessage().
    5. Removing the NullObject return value from ServiceDescriptions and instead simply returning null

New Features / enhancements:

    1. Adding Guzzle\Http\Message\AbstractMessage::addHeaders()
    2. Making it simpler to create service descriptions using a unified factory method that delegates to other factories.
    3. Better handling of ports and hosts in Guzzle\Http\Url

Note: This is a noisy diff because I'm removing trailing whitespace and adding a new line at the end of each source file.
2012-04-22 00:17:49 -07:00
Michael Dowling
c990901dd3 [BC] Removing prepareRequest() from client interface and making it a protected method of the client
Adding a RequestFactoryInterface and a way to inject a request factory into a Client object
2012-03-26 21:16:19 -05:00
Michael Dowling
85803bdd05 Adding the ability to set default HTTP headers that will be set on all requests created by a client. Closes #37. 2012-03-25 22:23:47 -05:00
Michael Dowling
4a0cb15350 [Http] Removing final keyword from client verb methods
Adding PATCH method
Fixing docblock for PUT method
Updating request message parsing to allow for custom verbs
Adding a Content-Length: 0 header when sending an entity enclosing request with no body or post fields.  Closes #34
2012-03-19 22:03:41 -05:00
Michael Dowling
b9c04909c7 Adding support for URI templates
[Http] UriTemplate syntax supports {} or {{}} for backwards compatibility.
[Http] Guzzle::inject() now allows {} or {{}} injection for consistency.
[Http] BC: removing Guzzle\Http\Client::inject and now using Guzzle\Http\Client::expandTemplate.
[Http] Can use a custom syntax for URI templates (this might be useful for something like Solr because Solr actually uses {}).
[Http] Adding the ability to inject a custom UriTemplate into clients or just use the default UriTemplate
[Http] You can now use an array when creating a request via a client to specify a URI template and additional template variables.
[Service] Adding support for URI templates to service descriptions.
[Service] [BC] removing Guzzle\Service\Description\ApiCommand::getPath() and replacing it with getUri().
[Service] Use "uri" instead of "path" when creating service descriptions.  However, there is still backwards compatibility with the "path" attribute.
2012-02-07 23:23:39 -06:00
Michael Dowling
4c46e77015 Guzzle 2.0
Adopting composer for dependency management
Updating LICENSE, travis build file, making better use of git ignores, and remove unused build target
Removing @author tags.  Use the commit history for a changelog.
Moving files from build folder to /
Adding min build target to product a Guzzle only phar with no autoloader
[Common] Accepting ZF1 or ZF2 cache in ZendCacheAdapter
[Common] Optimizing Stream wrapper and EntityBody abstractions.
[Common] [Http] Migrating from Guzzle event system to the Symfony2 event dispatcher
[Common] Moved Inflector and Inspector to Service namespace
[Http] Simplifying Guzzle\Guzzle curl detection
[Http] Removing Guzzle\Http\Pool and now using Guzzle\Http\Curl\CurlMulti
[Http] The helper methods from Guzzle\Http\Message\RequestFactory have been removed to prevent confusion and encourage developers to use Guzzle\Http\Client to create requests.
[Http] Clients can now send one or more requests in an array using the send() method, so the batch() method was removed.
[Http] Updating curl multi to allow blocking calls while sending other transfers
[Http] Making the Request::hasHeader method more intuitive.  Guzzle\Http\Message\AbstractMessage::hasHeader() now returns true if the header is found using exact matching.  If the header is found using a regex or case-insensitive match, then it will return the name of the found header.
[Http] Removing content-type guessing from EntityBody based on file extension and solely using finfo.
[Http] Adding basic auth plugin
[Http] Cleaning up CookieJar and CurlMulti
[Http] Removing custom rawurlencode from QueryString because PHP 5.3 now properly deals with tilde characters.
[Http] Minor optimization to parsing messages in RequestFactory
[Http] Adding Guzzle\Http\Client for developers that don't need commands or service descriptions
[Http] Making it easier to set a global User-Agent header for a Guzzle\Http\Client
[Http] Fixing the discrepancies between the ClientInterface and Guzzle\Http\Client
[Http] Adding the ability to set and retrieve tokenized headers from Requests and Responses
[Service] Ditching NIH filters and using the Symfony2 validator
[Service] Moving most service building logic to the ServiceBuilder::factory method so that it is easier to build custom config readers.
[Service] Allowing deep nested command inheritance.
[Service] Cleaning up Inflector caching.
[Service] Getting rid of concept of can_batch because everything is now sent in parallel.
[Service] Adding a JSON description builder.
[Service] Cleaning up ResourceIteratorApplyBatched.
[Service] Removing caching stuff from ServiceBuilder because the data being cached is extremely fast to generate.
[Service] Added a method to serialize the ServiceDescription in case a ServiceDescription needs to be cached in an application.
[Service] Making description builders use static methods.
[Service] Adding support to include other description files for XML and JSON description builders.
[Service] Adding support for filters to ApiCommands
[Service] Using {{}} instead of $. to reference other services as a dependency for another service
2012-01-14 13:57:05 -06:00