generator: use a proper destination
[mdref/mdref] / mdref / BaseUrl.php
1 <?php
2
3 namespace mdref;
4
5 use http\Url;
6 use function dirname;
7 use function filter_input;
8 use function strlen;
9 use function substr;
10 use function urldecode;
11 use const FILTER_VALIDATE_BOOLEAN;
12 use const INPUT_SERVER;
13
14 class BaseUrl extends Url
15 {
16 /**
17 * Create base URL
18 *
19 * @param mixed $url
20 */
21 function __construct($url = null) {
22 $self = [
23 "scheme" => filter_input(INPUT_SERVER, "HTTPS", FILTER_VALIDATE_BOOLEAN)
24 ? "https"
25 : "http",
26 "path" => dirname(filter_input(INPUT_SERVER, "SCRIPT_NAME")) . "/",
27 ];
28 parent::__construct($self, $url,
29 self::JOIN_PATH |
30 self::SANITIZE_PATH |
31 self::STRIP_QUERY |
32 self::STRIP_AUTH |
33 self::FROM_ENV
34 );
35 }
36
37 /**
38 * Extract path info
39 *
40 * @param mixed $url full request url
41 * @return string
42 */
43 function pathinfo($url) : string {
44 $url = new Url($this, $url, Url::FROM_ENV | Url::STRIP_QUERY);
45 $info = substr($url, strlen($this));
46 return urldecode($info);
47 }
48
49
50 }