11<?php
2+
3+ declare (strict_types=1 );
4+
25namespace LosMiddleware \BasePath ;
36
7+ use Mezzio \Helper \UrlHelper ;
48use Psr \Http \Message \ResponseInterface ;
59use Psr \Http \Message \ServerRequestInterface ;
610use Psr \Http \Server \MiddlewareInterface ;
711use Psr \Http \Server \RequestHandlerInterface ;
8- use Mezzio \Helper \UrlHelper ;
12+
13+ use function strlen ;
14+ use function strpos ;
15+ use function substr ;
916
1017final class BasePathMiddleware implements MiddlewareInterface
1118{
12- const BASE_PATH = 'los-basepath ' ;
13-
14- /**
15- * @var string
16- */
17- private $ basePath ;
18-
19- /**
20- * @var UrlHelper
21- */
22- private $ urlHelper ;
23-
24- /**
25- * @param string $basePath
26- * @param UrlHelper $urlHelper
27- */
28- public function __construct (string $ basePath = '' , UrlHelper $ urlHelper = null )
19+ public const BASE_PATH = 'los-basepath ' ;
20+
21+ private string $ basePath ;
22+
23+ private ?UrlHelper $ urlHelper ;
24+
25+ public function __construct (string $ basePath , ?UrlHelper $ urlHelper )
2926 {
30- $ this ->basePath = $ basePath ;
27+ $ this ->basePath = $ basePath ;
3128 $ this ->urlHelper = $ urlHelper ;
3229 }
3330
34- /**
35- * @param ServerRequestInterface $request
36- * @param RequestHandlerInterface $handler
37- * @return ResponseInterface
38- */
3931 public function process (ServerRequestInterface $ request , RequestHandlerInterface $ handler ): ResponseInterface
4032 {
4133 $ uri = $ request ->getUri ();
@@ -49,7 +41,7 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface
4941 $ path = substr ($ path , strlen ($ this ->basePath )) ?: '/ ' ;
5042
5143 $ request = $ request ->withUri ($ uri ->withPath ($ path ));
52- $ request = $ request ->withAttribute (static ::BASE_PATH , $ this ->basePath . $ path );
44+ $ request = $ request ->withAttribute (self ::BASE_PATH , $ this ->basePath . $ path );
5345
5446 if ($ this ->urlHelper instanceof UrlHelper) {
5547 $ this ->urlHelper ->setBasePath ($ this ->basePath );
0 commit comments