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

62 Commits

Author SHA1 Message Date
Michael Dowling
10cad60cf1 Moving getPath() from Guzzle\Service\Resource to Guzzle\Common\Collection 2013-01-08 23:10:57 -08:00
Michael Dowling
b5c6eb69b6 Code coverage for Collection 2012-12-30 21:18:31 -08:00
Michael Dowling
74176d3415 Easier exception thrown when sending commands in parallel
Adding CommandTransferException
Cleaning up Exceptions thrown from multi transfer
Closes #197
2012-12-30 14:05:06 -08:00
Michael Dowling
c5a76296ba Cleaning up the Collection object inject method and adding missing test 2012-12-13 14:15:43 -08:00
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
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
153ade4125 [Common] [Http] Stream and EntityBody objects will now return the stream
position to it's previous position any time a seek is made for a
temporary operation (e.g. __toString(), getContentLength(),
getContentMd()).
Cleaning up how compression offsets are handled
[Http] Adding the ability to consume request entity bodies when mocked
by the
MockPlugin
[Http] Fixing an offset error in the ReadLimitEntityBody
Only returning a subset of the body when calling __toString() on a
ReadLimitEntityBody
2012-08-07 17:20:09 -07:00
Michael Dowling
1c4a509ecc [Http] [Common] Adding ftell to streams. Adding ReadLimitEntityBody decorator to read only a subset of data from a stream. 2012-08-04 22:30:23 -07:00
Michael Dowling
51884a9402 [Common] Cleaning up Collection 2012-07-21 20:36:52 -07:00
Michael Dowling
feb5ac5a0c [Common] Improving the batch interfaces to better separate divisors from
transfers.
BC: Removing count from batch and replacing it with isEmpty()
Batch divisors can now return iterators or arrays
2012-07-02 13:40:17 -07: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
c824bf7b83 [Common] Cleaning up BatchClosureTransfer 2012-06-25 10:12:53 -07:00
Michael Dowling
9586d67b66 [Common] Adding BatchClosureDivisor
[Http] Throwing exception when a php://temp stream cannot be created
when using CURLOPT_STDERR
Adding client keyword to composer
2012-06-18 21:22:33 -07:00
Jeremy Lindblom
45ee000e23 Added getters and setters to BatchSizeDivisor and FlushingBatch. Changed BatchTransferException to contain a reference to the transfer and divisor objects. 2012-06-14 16:54:32 -07:00
Jeremy Lindblom
ec0991569f Fixed some typos, mostly in comments. Also fixed the LogPluginTest to make one of the assertContains checks more generic such that it passes on more systems. 2012-06-14 10:23:53 -07:00
Jeremy Lindblom
e3b3c3c19f Added BatchClosureTransfer - fixes #75.
The BatchClosureTransfer allows a closure to be passed in for specifying transfer logic in the batch system.
2012-06-14 09:22:55 -07:00
Michael Dowling
542503ef2a Merge pull request #69 from gimler/array_adapter
add array log adapter
2012-06-12 10:11:43 -07:00
Gordon Franke
632037b9af add array log adapter 2012-06-12 11:18:08 +02:00
Michael Dowling
f8a2197991 Adding a new generic batching system for requests and commands.
BC: Removed Guzzle\Http\Plugin\BatchQueuePlugin
BC: Removed Guzzle\Service\Command\CommandSet
2012-06-10 00:42:23 -07:00
Michael Dowling
d8a6bf4849 Updating ZF2 cache and log adapters. Using the ZF2 provided composer repositories. 2012-06-04 12:17:20 -07:00
Michael Dowling
76ac09bc5a Making it easier to add event subscribers 2012-06-02 22:42:21 -07:00
Michael Dowling
614e4d1666 [Http] Refactoring cookie implementation
* Guzzle\Http\Cookie is now used to manage Set-Cookie data, not Cookie
data
* Moving almost all cookie logic out of the CookiePlugin and into the
Cookie or CookieJar implementations
* Array cookie jar now returns matching cookies for a request and adds
cookies from responses
* Renaming methods in the CookieJarInterface
* Removing old references to deleted classes
* Guzzle\Http\Message\Request no longer needs an internal Cookie object
* Making the default glue for HTTP headers ';' instead of ','
* Adding a removeValue to Guzzle\Http\Message\Header
* Adding getCookies() to request interface.
* Removing unused AUTH_BASIC and AUTH_DIGEST constants from
* Guzzle\Http\Message\RequestInterface
* Lots of cleanup in the Guzzle\Http\Parser\Cookie\CookieParser
* Cleaning up Cookie related tests
2012-06-02 21:38:05 -07:00
Michael Dowling
3073b40e41 [Common] Not requiring an inspector for any_match. Removing all previously set mock listeners when adding a new mock observer in tests. 2012-05-29 14:37:24 -07:00
Michael Dowling
c877894bcb [Common] Allowing dot notation for classes when using the instance_of validation constraint. Now works with JSON service descriptions. 2012-05-24 13:53:23 -07:00
Michael Dowling
d2b59d2680 [Common] Adding an any_match validation constraint that passes if any constraints pass 2012-05-23 23:05:37 -07:00
Michael Dowling
cd8f008050 Removing XmlElement. Updating changelog 2012-05-19 01:23:07 -07:00
Michael Dowling
b6443f301e Removing NullObject 2012-05-18 22:43:03 -07:00
Michael Dowling
f8e8c0302b Refactoring service builders and service factories
[BC] [Service] Moving Guzzle\Service\Builder to
Guzzle\Service\Builder\ServiceBuilder
[Service] Creating an AbstractFactory used to delegate class
instantiation to a concrete factory. Used with service builders and
service descriptions
[Service] Making service descriptions and builders cacheable
[Service] Adding the ability to set global option overrides to service
builder configs. These options are applied to each service owned by a
service builder.  This can be used to globally specify access keys for
example.
[Service] Adding the ability to include other service builder config
files from within XML and JSON files.
[Service] Changing the format of XML and JSON configs.  Old format still
works too.
[Service] Moving XML service description includes to the end of
execution, so that includes are at the beginning of the parsed array.
[Service] Adding a Guzzle\Service\JsonLoader for loading JSON files that
have an { "includes": [] } array
2012-05-13 23:30:13 -07:00
Michael Dowling
764d935694 Changes to support a Guzzle\Http\Parser namespace
[Common] Adding keySearch method to Collection
[Http] Moving POST curl option logic from EntityEnclosingRequest to the
curl factory method
Directly using the HTTP request object when creating curl handles in the
factory method
No longer adding a read callback when sending POSTs through
CURLOPT_POSTFIELDS
In an effort to mitigate random segfaults and bus errors, using a queue
for removing curl and close handles from a multi object so that they are
only removed when the multi handle has finished sending all requests.
Calling reset() each time a curl multi handle has finished all requests.
EntityEnclosingRequest::getPostFields() now returns a Collection object
Simplifying the EntityEnclosingRequest::getPostFiles method
Adding an array cache to header objects
Moving the header comparison DSL from the Tests namespace to
Guzzle\Http\Message\HeaderComparison, and adding tests.
Adding message, cookie, and url parser interfaces and default
implementations.
Using a parser registry to manage globally registered parsers.  Removing parsing from Response and RequestFactory.
Renaming protocol_version to version
Changing the Guzzle\Http\Message\Response::setProtocol() method to accept a protocol and version in separate args.
Simplifying the chunked encoding handling in RequestFactory
Moving cookie parsing out of the cookie plugin and into Guzzle\Http\Parser\Cookie\CookieParser
Removing regexps from the cookie parser and simply using stripos
Moving the parseQuery method out of Url and on to QueryString::fromString() as a static factory method.
Adding more logging to node.js test webserver
Adding pecl_http message parser.
Installing pecl when travis boots up
2012-05-13 01:23:32 -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
63100af1ff Adding a NullCacheAdapter
Returning a NullCacheAdapter from the CacheAdapterFactory if no cache.adapter is provided
Changing DescriptionBuilders to not be static method classes
Adding ServiceDescriptionFactory and making service descriptions cachable
2012-05-07 23:32:42 -07:00
Michael Dowling
023662e5c2 Fixing typo and fixing type tests 2012-05-06 23:26:56 -07:00
Michael Dowling
0c51598851 [Common] Optimizing configuration injection. No longer supporting the {{}} format for configuration injection. You must use {} from now on. 2012-05-06 23:16:16 -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
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
a8089fdc5e [Common] Adding a "cache." prefix to cache settings 2012-04-18 17:16:39 -07:00
Michael Dowling
6191c4f766 [Common] Adding a CacheAdapterFactory so that you can generate cache adapters in your service config files 2012-04-18 16:56:58 -07:00
Michael Dowling
eabe684b22 [Common] [BC] Renaming ZendLogAdapter to Zf1LogAdater. Adding a Zf2LogAdapter. Renaming ZendCacheAdapter to Zf1CacheAdapter. Adding Zf2CacheAdapter to support Zend Framework 2 caching.
Updating the cache interface to allow passing options to cache methods.
Removing the constructor and removing getCachedObject from CacheAdapterInterface.
Adding a ClosureCacheAdapter.
[Service] Adding the ability to use magic call method behavior for executing commands by name.  Closes #39.
[Tests] Fixing a logging unit test so that it does not spit out to stdout
Separating test dependencies from Guzzle deps by adding a composer-test.json.
Adding unit testing capabilities to the Guzzle phar files.
Updating travis-ci script to use new composer file and adding code coverage to travis runs
[Build] Fixing guzzle-min.phar warning that tried to load index.php
Adding a test-init phing target to help getting setup for testing.
Fixing composer run in travis
2012-04-14 18:49:51 -07:00
Michael Dowling
2ca59100ff Fixing broken test 2012-01-27 10:42:37 -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
Michael Dowling
3946b93bbf [Tests] Getting code coverage back to 100% 2011-11-13 16:46:37 -06:00
Michael Dowling
b5f0507a0c [Tests] Adding .travis.yml
Removing logging from node server
Fixing history plugin test
Fixing bzip2 test
Fixing timestamp test
2011-11-13 13:30:34 -06:00
Michael Dowling
503c16668e [Tests] Adding `@server annotation to tests that require access to the node.js server. If you cannot install node.js, use phpunit --exclude-group server` to run the other tests. 2011-11-12 19:31:00 -06:00
Michael Dowling
17b4ac50d6 Cleaning up the EventManager class. Using spl_object_hash as event keys. 2011-08-28 00:06:08 -05:00
Michael Dowling
a7ae469671 Removing verbose docblock headers from every class 2011-07-07 17:17:28 -05:00
Michael Dowling
a6f5e6a194 Removing /src from generated Phar file. Removing deprecated assertType calls from PHPUnit tests. 2011-04-13 12:44:53 -05:00
Michael Dowling
782b323893 [Common] Adding a Monolog log adapter. Fixing the ZendLogAdapter and updating logging unit tests. Adding Monolog as a submodule and adding to to the test bootstrap. 2011-04-12 22:57:12 -05:00
Michael Dowling
930494c795 [Common] [Http] Adding coverage to Collection. Not forcing a request to be set to new in order to send it again. 2011-03-28 21:23:03 -05:00