slam / basepath
PHP middleware to remove a path prefix from request uri
Fund package maintenance!
Slamdunk
paypal.me/filippotessarotto
Requires
- php: ^7.4 || ^8.0
- psr/container: ^1.1.1
- psr/http-message: ^1.0.1
- psr/http-server-handler: ^1.0.1
- psr/http-server-middleware: ^1.0.1
Requires (Dev)
- ext-json: *
- laminas/laminas-coding-standard: ^2.1.4
- laminas/laminas-diactoros: ^2.5.0
- laminas/laminas-view: ^2.12.0
- malukenho/mcbumpface: ^1.1.5
- mezzio/mezzio-fastroute: ^3.1.0
- mezzio/mezzio-helpers: ^5.4.0
- mezzio/mezzio-laminasviewrenderer: ^2.2.0
- mezzio/mezzio-router: ^3.3.0
- phpstan/phpstan: ^0.12.81
- phpstan/phpstan-phpunit: ^0.12.18
- phpunit/phpunit: ^9.5.2
- squizlabs/php_codesniffer: ^3.5.8
This package is auto-updated.
Last update: 2024-10-09 22:39:00 UTC
README
This middleware just removes a prefix from the request uri.
Installation
This middleware can be installed with composer.
$ composer require slam/basepath
Usage
Just add the middleware as one of the first in your application.
For example:
$app->pipe(new \LosMiddleware\BasePath\BasePathMiddleware('/site'));
Every request with /site
prefix will be replaced:
/site => /
/site/blog => /blog
/site/contact-us => /contact-us
Mezzio (formely Zend Expressive)
If you are using mezzio-skeleton,
you can copy config/los-basepath.global.php.dist
to config/autoload/los-basepath.global.php
and modify configuration as your needs.
Then, add the middleware to your pipeline:
$app->pipe(LosMiddleware\BasePath\BasePathMiddleware::class);
Dynamic base path
In some cases a dynamic base path might be required. This can be achieved with the following code in your configuration file:
$scriptPath = dirname($_SERVER['SCRIPT_NAME']); return [ // Use directory of script path if available, otherwise default to empty string. 'los_basepath' => strlen($scriptPath) > 1 ? $scriptPath : '', // rest of the configuration ... ];