All guides
No guide matches your search.
Install
Add Reqtide to a Composer project with Composer from Packagist, or run the examples in Docker without installing PHP.
On this page
Reqtide 0.1.0 is a beta: the API can change between minor versions, and every change is listed in the changelog. The three packages are released with the same version number. Install them with Composer from Packagist:
composer require enaxon/reqtide
composer require enaxon/reqtide-redis # state shared by several PHP processes
composer require enaxon/reqtide-guzzle # protections around Guzzle requestsEach add-on requires exactly the same version of enaxon/reqtide. The rest of this guide shows how to install from a clone, which is meant for contributors.
What works today
| Route | Status | Notes |
|---|---|---|
| Packagist | Works | Checked on 2026-10-15 with Composer 2.8.12 on PHP 8.3.35, 8.4.26 and 8.5.11 in Docker: the three packages at 0.1.0 install from Packagist in an empty directory, also with --prefer-lowest. |
| Composer path repository, from a clone | Works | For contributors. See the section below. |
| PHP 8.3, 8.4, 8.5 | Checked in Docker | Command line only. |
| PHP-FPM, Apache, other web servers | PHP-FPM: three CI lanes (PHP 8.3, 8.4 and 8.5, nginx, six workers). Others: not run | State stays inside one PHP process. Read Limits before you use Reqtide in a web request. |
Requirements
- PHP 8.3 or newer on a 64-bit build.
- Composer 2.
- No other runtime packages for the core. Its
composer.jsonrequires onlyphpandphp-64bit.
The two add-on packages need more. enaxon/reqtide-redis needs ext-openssl and Predis 3.7. enaxon/reqtide-guzzle needs ext-curl and Guzzle 7.15.5 or newer.
Install from a clone
Step 1: Clone the repository
Clone it next to your project:
git clone https://github.com/ehsanenaloo/reqtide.gitStep 2: Register the clone as a path repository
Add the repositories to the composer.json of your project. The core lives at the root of the clone. The Redis and Guzzle packages live in packages/redis and packages/guzzle. Set symlink to false so Composer copies each package into vendor/.
{
"repositories": [
{ "type": "path", "url": "../reqtide", "options": { "symlink": false } },
{ "type": "path", "url": "../reqtide/packages/redis", "options": { "symlink": false } },
{ "type": "path", "url": "../reqtide/packages/guzzle", "options": { "symlink": false } }
]
}You need only the first line for the core. Add the other two when you want the Redis or Guzzle package.
Step 3: Require the packages
composer require "enaxon/reqtide:@dev" "enaxon/reqtide-redis:@dev" "enaxon/reqtide-guzzle:@dev"Leave out the packages you do not need. The add-on packages need the same version of the core, so install them together.
The vendor name is enaxon. A different Packagist vendor, naxon, is one letter away. Copy the package name exactly.
The core package enaxon/reqtide holds the library (Enaxon\Reqtide) and the test helpers (Enaxon\Reqtide\Testing). The helpers are for tests only. See Testing with the virtual clock.
Try it without installing PHP
With Docker you can run the examples inside the clone. You need no PHP or Composer on your machine:
cd reqtide
docker compose -f tools/docker/compose.yaml run --rm php83 composer install
docker compose -f tools/docker/compose.yaml run --rm php83 php examples/06-getting-started.phpThe output is:
ok on attempt 3
invocations: 3Use php84 or php85 in place of php83 to try the other PHP versions.
Check that it works
Create demo.php in your project with the script from Getting started and run it:
php demo.phpYou should see the two lines above. If PHP reports that the class Enaxon\Reqtide\Pipeline\PipelineBuilder is not found, the autoloader line is missing or points to the wrong vendor/ folder. If Composer cannot find enaxon/reqtide, check the url of the path repository.
Next
Getting started builds your first pipeline. Limits lists what version 0.x does not do.
Was this page helpful?