Simple Middleware to rewrite the path, the query and the fragment of the an http request uri. It requires an array of rules that are evaluated in sequence. A rule is a two position array: array is the regexp pattern to search (internally translated in #^$pattern$# and array is the replacement according the php function preg_replace.
Inspired from middlewares/base-path
- PHP >= 7.0
- A PSR-7 http message implementation (Diactoros, Guzzle, Slim, etc...)
- A PSR-15 middleware dispatcher
This package is installable and autoloadable via Composer as linkeddatacenter/url-rewriter.
composer require linkeddatacenter/url-rewriter
$dispatcher = new Dispatcher([ new Middlewares\BasePath([ [ '/(\w+)' => '/$1/pluto', '/(\w+)/(\w+)/(\w+).(csv|json|xml)(.*)' =>'/$1/docstore?db=$2&table=$3&format=$4$5', ]) ]); $response = $dispatcher->dispatch(new ServerRequest());
rules := array [ , ,.... ] rule := array [ , ]
Test with docker
docker run --rm -ti -v $PWD/.:/app composer composer install docker run --rm -ti -v $PWD/.:/app composer vendor/bin/phpunit
The MIT License (MIT). Please see LICENSE for more information.