1
0
mirror of https://github.com/guzzle/guzzle.git synced 2025-02-24 18:13:00 +01:00

723 Commits

Author SHA1 Message Date
Michael Dowling
b45b78999e Removing default value support from Collection (just use a tertiary condition instead). Perf improvement to Collection::get() 2012-10-15 16:38:34 -07:00
Michael Dowling
c4c5c95028 Moving Cookie related classes from Guzzle\Http to Guzzle\Plugin\Cookie 2012-10-15 16:38:34 -07:00
Michael Dowling
a7ebc1a406 Adding the ability to disable request validation and customize how responses are processed
Moving validation from Parameter to AbstractCommand
Renaming JsonBodyVisitor to JsonVisitor
Renaming Processor to Validator
Adding min/maxLength, minimum/maximum, and min/maxItems to Parameter to support valida JSON schema
Optimizing schema validation
2012-10-15 16:38:33 -07:00
Michael Dowling
34dbece2d7 Optimizing schema validation 2012-10-15 16:38:33 -07:00
Michael Dowling
f0ce001726 Horrible optimizations to the JSON schema validation to limit the number of calls made when validating. Resulted in about a 35% speed improvement of a core feature that could potentially be called hundreds of times when sending complex requests. 2012-10-15 16:38:33 -07:00
Michael Dowling
2680137994 Adding responseType to be used in tandem with responseClass. Adding protective checks to not attempt to set undefined properties on service descriptions. 2012-10-15 16:38:33 -07:00
Michael Dowling
28b3dce0b6 Adding support for custom service description attributes through data properties 2012-10-15 16:38:33 -07:00
Michael Dowling
d4fa382f8b Adding the ability to cast integers to strings when a schema is meant to be a string (this can be disabled if needed). Adding comments and fixing an error message 2012-10-15 16:38:33 -07:00
Michael Dowling
cf0924471c Completely rethinking service descriptions
Getting rid of the Validation component and "Inspector"
Removing custom types from service descriptions
Using a JSON schema based approach to validation and normalization
Adding a lazy building of Parameters for Operaton objects
Using camel case for postFile and postFile
Adding models support to service descriptions
Adding support for $ref overwrites of models registered with ServiceDescriptions
Adding more meta information to service descriptions
Adding data property to operations
Adding service description property to operations. Adding an XML location used to serialize XML requests.
Restructuring how service description based command requests are serialized and how responses are parsed
Adding JSON response parsers
Adding the ability to skip recursive translations on JSON responses
2012-10-15 16:38:33 -07:00
Michael Dowling
465fc06506 Cleaning up docblocks 2012-10-15 16:38:32 -07:00
Michael Dowling
05e1fef820 Adding nested ApiParam support in structures. Removing XML builders.
- Adding nested parameter serialization support to json, query, and
  post_field locations.
- Removing XML builders and only using JSON/arrays.
- Removing dot notation for classes, filters, and types.
- Updating validation filters to allow callers to get the default option using a static method.
- Removing annotation support from commands and using a static method instead.
2012-10-15 16:38:32 -07:00
Michael Dowling
0141b24b04 Cleaning up backoff code and adding an additional test. Fixing bug that caused any ApiParam with a filter to be set to an empty string, which caused the parameter to be applied to a request 2012-10-15 16:37:51 -07:00
Michael Dowling
523af11d2f [Http] Making the type of HTTP response checks faster
Using a default log template when null or an empty string is provided
Removing the next and makesDecision methods from the backoff strategy interfaces.
Using call_user_func in callback strategies so that array() callbacks are supported.
Listening for request.sent with the LogPlugin so that even error responses are logged.
Renaming getExponentialBackoffInstance to getExponentialBackoff
2012-10-15 16:37:51 -07:00
Michael Dowling
b61bd91191 Using a Doctrine ArrayCache when no cache is provided to the cache plugin 2012-10-15 16:37:51 -07:00
Michael Dowling
0e54bf303d [Backoff] Fixing the backoff plugin so that there is now a delineation between decision making strategies and calculating strategies
Moving the truncated backoff strategy up in the default exponential backoff chain
2012-10-15 16:37:50 -07:00
Michael Dowling
91f1e3473f [Http] Adding setBody() to Response
Adding a shared MessageFormatter that expands log templates. Using in
LogPlugin and in BackoffLogger.
Making LogPlugin simpler and easier to customize.
2012-10-15 16:37:50 -07:00
Michael Dowling
158e22996b [Cache] Fixing ZF2 cache adapter 2012-10-15 16:37:50 -07:00
Michael Dowling
5429ec0dc3 Adding a more robust and extendable cache plugin 2012-10-15 16:37:50 -07:00
Michael Dowling
2393ca43a1 Cache plugin updates 2012-10-15 16:37:50 -07:00
Michael Dowling
4e59b5404f Adding a much more robust backoff plugin 2012-10-15 16:37:49 -07:00
Michael Dowling
b110d184c6 Fixing broken test 2012-10-15 16:37:49 -07:00
Michael Dowling
2de3507c53 Renaming ExponentialBackoffPlugin to BackoffPlugin 2012-10-15 16:37:49 -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
95e1a464e3 Adding an iterator component 2012-10-15 16:37:48 -07:00
Glenn Pratt
fffc167cce Fixes #145: Match .prefix cookied domain names to parent, block subdomain match of TLD cookies except .local. 2012-10-15 17:40:51 -05:00
Michael Dowling
d23fabc762 [OAuth] Removing token and token_secret from required params. Only adding to auth header if a value is set. Closes #143 2012-09-30 01:18:07 -07:00
Michael Dowling
e6fe489fe8 [Http] Adding the ability to remove POST parameters from OAuth signatures. Closes #135 2012-09-29 18:30:46 -07:00
Felix Jodoin
cee0805d10 fixes Request::getInfo for when curl.debug is disabled 2012-09-25 14:49:13 +00:00
Michael Dowling
244c61eceb Hardening request and response processing to account for missing parts 2012-09-20 13:28:06 -07:00
Michael Dowling
46d50a31cc Stripping out the path to a file in the Content-Disposition of a POST file. Addresses #55. 2012-09-20 11:31:33 -07:00
Michael Dowling
2fa1b69eac [Http] Cookie fix now uses the ParserRegistry. Cleanin up. 2012-09-13 11:02:51 -07:00
Gordon Franke
982dcbfab5 use CookieParser for request::getCookies 2012-09-13 15:47:24 +02:00
Michael Dowling
0318412538 [Service] Adding removeParam() to ApiCommand 2012-09-06 20:02:10 -07:00
Jeremy Lindblom
a71e3625c7 Improved the iterator factory so that it can look for iterators in multiple namespaces 2012-09-06 12:39:50 -07:00
Michael Dowling
6300bd983a [Service] Fixing problems with custom service builders
Injecting ArrayServiceBuilder objects into {Json,Xml}ServiceBuilders
Caching instantiated service builder factories due to them being used
recursively
2012-09-05 16:25:18 -07:00
Michael Dowling
01eb20051d [Service] Enhancements to includes in service builder config files
- Removing caching of factory classes from the default abstract factory.
  This is usually only called once.
- Removing the cached instance of a ServiceBuilderAbstractFactory in the
  ServiceBuilder::factory. This is usually only called once.
- Returning instantiated factories rather than class names when using the
  abstract factory, allowing for modifying return values in child classes.
- Using the union of two arrays rather than an array_merge when extending
  service builder services and service params.
- Ensuring that a service is a string before doing strpos() checks on it
  when substituting services for references in service builder config files.
- Services defined in two different config files that include one another will
  by default replace the previously defined service, but you can now create
  services that extend themselves and merge their settings over the previous.
- The JsonLoader now supports aliasing filenames with different filenames. This
  allows you to alias something like '_default' with a default JSON
  configuration file.
2012-09-03 21:30:55 -07:00
Michael Dowling
e618746d56 [Common] Allow dot notation for classes used by the CacheAdapterFactory so that cache services can be defined in JSON builder configs 2012-09-03 17:31:48 -07:00
Michael Dowling
9be6ba662c Cleaning up the ServiceBuilder test and adding integration tests to ensure services can be injected after instantiating a service builder and service builders can build cache adapters 2012-09-03 17:23:04 -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
4c6944646b [Service] Using visitors to apply parameters to dynamic commands.
Adding a json parameter location.
Tuning DynamicCommand
2012-09-02 11:50:51 -07:00
Michael Dowling
c8dca69100 [Service] Adding an addFilter() method to ApiParam 2012-08-31 17:24:05 -07:00
Michael Dowling
8860d1e9c7 [Service] Adding the ability to modify/build service descriptions, commands, and parameters 2012-08-31 12:47:06 -07:00
Herman Radtke
d1e001ede7 Not all HTTP Responses include text status
Many RESTful frameworks omit the text status from the header. That
provides a response like "HTTP/1.1 200". Prevent an Undefined offset
by checking to see how many parts of the status line are provided
before trying to assign them.
2012-08-24 18:52:09 -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
Michael Dowling
4c909a2612 [Service] Making anything that extends AbstractCommand invokable. Fixing coverage on OauthPlugin. 2012-08-18 14:09:08 -07:00
Paul Annesley
798bfb0393 UriTemplate suppresses key name for empty arrays.
e.g:

params:            array()
template:          /path{?params*}
previous result:   /path?params=
correct result:    /path

Unfortunately PHP is unable to distinguish between an empty list array
and an empty associative array. However this doesn't matter, because the
empty case of either of these is considered "undefined" by the spec.

http://tools.ietf.org/html/draft-gregorio-uritemplate-08#section-2.3

  A variable defined as a list value is considered undefined if the
  list contains zero members.  A variable defined as an associative
  array of (name, value) pairs is considered undefined if the array
  contains zero members or if all member names in the array are
  associated with undefined values.

http://tools.ietf.org/html/draft-gregorio-uritemplate-08#section-3.2.1

  A variable that is undefined (Section 2.3) has no value and is
  ignored by the expansion process.  If all of the variables in an
  expression are undefined, then the expression's expansion is the
  empty string.
2012-08-17 15:22:25 +10:00
Michael Dowling
5b0277b0b3 [Http] Allowing request entity bodies to be transferred using a string rather than streamed by setting "body_as_string" as a curl option on a request. This gets around the issue where curl cannot rewind the stream on a redirect or challenge due to the inability of PHP to specify a seek or IO callback. Closes #120. 2012-08-14 18:16:47 -07:00
Michael Dowling
0aceeef7b0 [Http] Adding an EventDispatcher to the ExponentialBackoffPlugin and adding an ExponentialBackoffLogger 2012-08-14 14:53:09 -07:00
Michael Dowling
8f0674dcb3 Fixing broken DELETE test 2012-08-12 19:38:53 -07:00
Michael Dowling
538de90a86 [Http] DELETE requests can now send along an entity body.
Retrieving a DELETE request from a client or request factory will now
return an EntityEnclosingRequestInterface object.
Cleaned up the CurlHandle::factory method.
Closes #118 (thanks to @zachbadgett for inspiration)
2012-08-12 18:55:12 -07:00