Adding a shared MessageFormatter that expands log templates. Using in
LogPlugin and in BackoffLogger.
Making LogPlugin simpler and easier to customize.
- 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.
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.
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.
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)
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