Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
TemplateUrls
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
3 / 3
7
100.00% covered (success)
100.00%
1 / 1
 resolveIncludeUrl
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 resolveBaseUrl
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 resolve
100.00% covered (success)
100.00%
10 / 10
100.00% covered (success)
100.00%
1 / 1
5
1<?php
2
3namespace BO\Slim\Helper;
4
5use BO\Slim\Request;
6
7class TemplateUrls
8{
9    public static function resolveIncludeUrl(?Request $request = null): string
10    {
11        return self::resolve($request, true);
12    }
13
14    public static function resolveBaseUrl(?Request $request = null): string
15    {
16        return self::resolve($request, false);
17    }
18
19    private static function resolve(?Request $request, bool $withUri): string
20    {
21        if (null !== \App::$includeUrl) {
22            return \App::$includeUrl;
23        }
24
25        if (null === $request) {
26            return '/';
27        }
28
29        /** @psalm-suppress DeprecatedMethod Template URL helpers still wrap Request base-path helpers. */
30        $uri = $request->getBasePath();
31        if ($withUri) {
32            /** @psalm-suppress DeprecatedMethod Template URL helpers still wrap Request base-url helpers. */
33            $uri = $request->getBaseUrl();
34            $uri = preg_replace('#^https?://[^/]+#', '', $uri) ?? $uri;
35        }
36
37        $resolved = \BO\Slim\Helper::proxySanitizeUri($uri);
38        return is_array($resolved) ? implode('', $resolved) : $resolved;
39    }
40}