RemoveDevPrefixMiddleware.php
· 702 B · PHP
Raw
<?php
use Interop\Http\ServerMiddleware\DelegateInterface;
use Interop\Http\ServerMiddleware\MiddlewareInterface;
use Psr\Http\Message\ServerRequestInterface;
class RemoveDevPrefixMiddleware implements MiddlewareInterface
{
private $prefix;
public function __construct(string $prefix = '/extra_directory')
{
$this->prefix = $prefix;
}
public function process(ServerRequestInterface $request, DelegateInterface $delegate)
{
$uri = $request->getUri();
$path = $uri->getPath();
$path = preg_replace('#^' . $this->prefix . '#', '', $path);
$uri = $uri->withPath($path);
return $delegate->process($request->withUri($uri));
}
}
1 | <?php |
2 | |
3 | use Interop\Http\ServerMiddleware\DelegateInterface; |
4 | use Interop\Http\ServerMiddleware\MiddlewareInterface; |
5 | use Psr\Http\Message\ServerRequestInterface; |
6 | |
7 | class RemoveDevPrefixMiddleware implements MiddlewareInterface |
8 | { |
9 | private $prefix; |
10 | |
11 | public function __construct(string $prefix = '/extra_directory') |
12 | { |
13 | $this->prefix = $prefix; |
14 | } |
15 | |
16 | public function process(ServerRequestInterface $request, DelegateInterface $delegate) |
17 | { |
18 | $uri = $request->getUri(); |
19 | $path = $uri->getPath(); |
20 | $path = preg_replace('#^' . $this->prefix . '#', '', $path); |
21 | |
22 | $uri = $uri->withPath($path); |
23 | return $delegate->process($request->withUri($uri)); |
24 | } |
25 | } |
pipeline.php
· 127 B · PHP
Raw
<?php
// Do this before piping the routing middleware
$app->pipe('/extra_path', new RemoveDevPrefixMiddleware('/extra_path'));
1 | <?php |
2 | |
3 | // Do this before piping the routing middleware |
4 | $app->pipe('/extra_path', new RemoveDevPrefixMiddleware('/extra_path')); |