diff --git a/CHANGELOG.md b/CHANGELOG.md
index cf397764..8dbd4feb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -62,7 +62,7 @@ All exceptions will be handled in the callback.
- Added `ParameterBag` to store options.
- Added `BatchClientInterface::sendAsyncRequest(RequestInterface $request, array $options = [])`.
- Added `BuzzClientInterface::sendRequest(RequestInterface $request, array $options = []): ResponseInterface`.
-- Ported all Listeners to Middlewares.
+- Ported all Listeners to Middleware.
- Added options to configure the client as constructor argument and when you send a request.
### Removed (BC breaks)
@@ -123,7 +123,7 @@ All exceptions will be handled in the callback.
* Added Request and Response converters
* Added `Curl::sendRequest()`, `MultiCurl::sendRequest()` and `FileGetContents::sendRequest()` that
supports sending PSR-7 requests.
-* Added `Browser::sendRequest()` that supports middlewares.
+* Added `Browser::sendRequest()` that supports middleware.
* Added `MiddlewareInterface` and `Browser::addMiddleware()`.
* Added `HeaderConverter` to convert between PSR-7 styled headers and Buzz styled headers.
diff --git a/README.md b/README.md
index 275ba5d2..8ab7720f 100644
--- a/README.md
+++ b/README.md
@@ -132,6 +132,14 @@ compatibility.
Being greatly inspired by [Symfony's bc promise](https://symfony.com/doc/current/contributing/code/bc.html), we have adopted
their method of deprecating classes, interfaces and functions.
+## Contribute
+
+Buzz is great because it is small, simple and yet flexible. We are always happy to receive bug reports and bug fixes. We
+are also looking forward to review a pull request with a new middleware, especially if the middleware covers a common
+use case.
+
+We will probably not accept any configuration option or feature to any of the clients or the Browser.
+
## Running the tests
There are 2 kinds of tests for this library; unit tests and integration tests. They can be run separably by:
diff --git a/doc/index.md b/doc/Readme.md
similarity index 98%
rename from doc/index.md
rename to doc/Readme.md
index 5564631f..30a63b5f 100644
--- a/doc/index.md
+++ b/doc/Readme.md
@@ -7,7 +7,7 @@ reading.
* [Browser](#browser)
* [Submit forms](#submit-a-form)
* [Client](/doc/client.md)
-* [Middlewares](/doc/middlewares.md)
+* [Middleware](/doc/middleware.md)
* [Symfony Bundle](/doc/symfony.md)
diff --git a/doc/client.md b/doc/client.md
index ca765001..062c9911 100644
--- a/doc/client.md
+++ b/doc/client.md
@@ -1,4 +1,4 @@
-[<-- Index](/doc/index.md)
+[<-- Index](/doc/Readme.md)
# Clients
@@ -94,10 +94,10 @@ A proxy server to use when sending requests.
#### push_function_callback
Type: callable, null
-Default: `null`
+Default: `null`
*Only for MultiCurl*
-A callable for `CURLMOPT_PUSHFUNCTION`. See [PHP docs](http://php.net/manual/en/function.curl-multi-setopt.php)
+A callable for `CURLMOPT_PUSHFUNCTION`. See [PHP docs](http://php.net/manual/en/function.curl-multi-setopt.php).
Since MultiCurl supports adding multiple requests, all Push Functions callbacks are
chained together. If one of them returns `CURL_PUSH_DENY`, then the request will be denied.
@@ -124,7 +124,7 @@ The time to wait before interrupt the request.
#### use_pushed_response
Type: boolean
-Default: `true`
+Default: `true`
*Only for MultiCurl*
If true, we can used responses pushed to us by HTTP/2.0 server push.
@@ -138,4 +138,4 @@ If SSL protocols should verified.
---
-Continue reading about [Middlewares](/doc/middlewares.md).
+Continue reading about [Middleware](/doc/middleware.md).
diff --git a/doc/middlewares.md b/doc/middleware.md
similarity index 95%
rename from doc/middlewares.md
rename to doc/middleware.md
index 08b8d2f7..ba396920 100644
--- a/doc/middlewares.md
+++ b/doc/middleware.md
@@ -1,10 +1,10 @@
-[<-- Index](/doc/index.md)
+[<-- Index](/doc/Readme.md)
-# Buzz middlewares
+# Buzz middleware
If you want to modify the request or response somehow, a middleware is the way to
go. Every time you send a request with the `Browser` it will run through all the
-middlewares. The order of the middlewares is important. The first middleware added
+middleware. The order of the middleware is important. The first middleware added
to the `Browser` will be the first one that is executed when handling the request and
the last one to be executed when handling the response.
diff --git a/doc/symfony.md b/doc/symfony.md
index bcd84bb6..e4babacb 100644
--- a/doc/symfony.md
+++ b/doc/symfony.md
@@ -1,4 +1,4 @@
-[<-- Index](/doc/index.md)
+[<-- Index](/doc/Readme.md)
# Symfony integration
@@ -44,4 +44,4 @@ plugins method clients and whatever you want according to the
---
-Go back to [index](/doc/index.md).
\ No newline at end of file
+Go back to [index](/doc/Readme.md).
\ No newline at end of file
diff --git a/lib/Browser.php b/lib/Browser.php
index c7739ae7..325b5a65 100644
--- a/lib/Browser.php
+++ b/lib/Browser.php
@@ -25,7 +25,7 @@ class Browser implements BuzzClientInterface
/**
* @var MiddlewareInterface[]
*/
- private $middlewares = [];
+ private $middleware = [];
/** @var RequestInterface */
private $lastRequest;
@@ -143,7 +143,7 @@ public function submitForm(string $url, array $fields, string $method = 'POST',
*/
public function sendRequest(RequestInterface $request, array $options = []): ResponseInterface
{
- $chain = $this->createMiddlewareChain($this->middlewares, function (RequestInterface $request, callable $responseChain) use ($options) {
+ $chain = $this->createMiddlewareChain($this->middleware, function (RequestInterface $request, callable $responseChain) use ($options) {
$response = $this->client->sendRequest($request, $options);
$responseChain($request, $response);
}, function (RequestInterface $request, ResponseInterface $response) {
@@ -158,15 +158,15 @@ public function sendRequest(RequestInterface $request, array $options = []): Res
}
/**
- * @param MiddlewareInterface[] $middlewares
+ * @param MiddlewareInterface[] $middleware
*/
- private function createMiddlewareChain(array $middlewares, callable $requestChainLast, callable $responseChainLast): callable
+ private function createMiddlewareChain(array $middleware, callable $requestChainLast, callable $responseChainLast): callable
{
$responseChainNext = $responseChainLast;
// Build response chain
/** @var MiddlewareInterface $middleware */
- foreach ($middlewares as $middleware) {
+ foreach ($middleware as $middleware) {
$lastCallable = function (RequestInterface $request, ResponseInterface $response) use ($middleware, $responseChainNext) {
return $middleware->handleResponse($request, $response, $responseChainNext);
};
@@ -179,12 +179,12 @@ private function createMiddlewareChain(array $middlewares, callable $requestChai
$requestChainLast($request, $responseChainNext);
};
- $middlewares = array_reverse($middlewares);
+ $middleware = array_reverse($middleware);
// Build request chain
$requestChainNext = $requestChainLast;
/** @var MiddlewareInterface $middleware */
- foreach ($middlewares as $middleware) {
+ foreach ($middleware as $middleware) {
$lastCallable = function (RequestInterface $request) use ($middleware, $requestChainNext) {
return $middleware->handleRequest($request, $requestChainNext);
};
@@ -215,7 +215,7 @@ public function getClient(): BuzzClientInterface
*/
public function addMiddleware(MiddlewareInterface $middleware): void
{
- $this->middlewares[] = $middleware;
+ $this->middleware[] = $middleware;
}
private function prepareMultipart(string $name, string $content, string $boundary, array $data = []): string