l2iterative / mock-webserver-ext
A simple extension to donatj/mock-webserver with extra matching
Installs: 13
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/l2iterative/mock-webserver-ext
Requires
- donatj/mock-webserver: >=v2.7
Requires (Dev)
This package is not auto-updated.
Last update: 2025-10-13 13:33:28 UTC
README
This minimalistic library is intended to enable donatj/mock-webserver to handle more complex request definitions,
by adapting the interfaces of InterNations/http-mock into it.
Most of the code appears to be a partial rewriting of the Matcher and Expectation implementation in InterNations/http-mock.
Therefore, credits of the code should go to InterNations/http-mock.
Why extending donatj/mock-webserver?
We could have chosen not to use donatj/mock-webserver and instead to use InterNations/http-mock.
We did not choose this path because InterNations/http-mock is somewhat archived, while donatj/mock-webserver is
actively being maintained.
Another reason why we prefer donatj/mock-webserver is the simpler dependency, as InterNations/http-mock appears to use the Symfony framework, which could be a heavy machinery.
How to use
The test script provides a self-explanatory example.
<?php $complex_response = new ComplexResponse(); $complex_response ->when_path_is('/api/users') ->when_method_is('POST') ->when_header_is('x-api-key', new RegexMatcher('/^mock/')) ->when_header_exists('x-api-version') ->when_header_not_exists('x-api-version-old') ->when_query_param_is('GET', 'session_uid', new RegexMatcher('/^s/')) ->when_query_param_exists('POST', 'image') ->when_query_param_not_exists('POST', 'debug') ->then(new Response('{"id": 1, "name": "John Doe"}', [], 200)); ?>
Since ComplexResponse implements ResponseInterface, it can be a drop-in replacement.
License
This package is under the MIT license. For more detail, see LICENSE.
