Issues (141)

src/UriFactory.php (1 issue)

Labels
Severity
1
<?php
2
3
declare(strict_types=1);
4
5
namespace BEAR\Resource;
6
7
use BEAR\Resource\Annotation\ContextScheme;
8
9
use function array_key_exists;
10
use function parse_url;
11
12
/** @psalm-import-type Query from Types */
13
final readonly class UriFactory
0 ignored issues
show
A parse error occurred: Syntax error, unexpected T_READONLY, expecting T_CLASS on line 13 at column 6
Loading history...
14
{
15
    public function __construct(
16
        #[ContextScheme]
17
        private string $schemaHost = 'page://self',
18
    ) {
19
    }
20
21
    /** @param Query $query */
22
    public function __invoke(string $uri, array $query = []): Uri
23
    {
24
        $parsedUrl = (array) parse_url($uri);
25
        if (! array_key_exists('scheme', $parsedUrl)) {
26
            $uri = $this->schemaHost . $uri;
27
        }
28
29
        return new Uri($uri, $query);
30
    }
31
}
32