forked from nette/http
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUrlScript.php
More file actions
75 lines (62 loc) · 1.4 KB
/
UrlScript.php
File metadata and controls
75 lines (62 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
/**
* This file is part of the Nette Framework (https://nette.org)
* Copyright (c) 2004 David Grudl (https://davidgrudl.com)
*/
namespace Nette\Http;
/**
* Extended HTTP URL.
*
* <pre>
* http://nette.org/admin/script.php/pathinfo/?name=param#fragment
* \_______________/\________/
* | |
* scriptPath pathInfo
* </pre>
*
* - scriptPath: /admin/script.php (or simply /admin/ when script is directory index)
* - pathInfo: /pathinfo/ (additional path information)
*
* @property string $scriptPath
* @property-read string $pathInfo
*/
class UrlScript extends Url
{
/** @var string */
private $scriptPath = '/';
/**
* Sets the script-path part of URI.
* @param string
* @return self
*/
public function setScriptPath($value)
{
$this->scriptPath = (string) $value;
return $this;
}
/**
* Returns the script-path part of URI.
* @return string
*/
public function getScriptPath()
{
return $this->scriptPath;
}
/**
* Returns the base-path.
* @return string
*/
public function getBasePath()
{
$pos = strrpos($this->scriptPath, '/');
return $pos === FALSE ? '' : substr($this->getPath(), 0, $pos + 1);
}
/**
* Returns the additional path information.
* @return string
*/
public function getPathInfo()
{
return (string) substr($this->getPath(), strlen($this->scriptPath));
}
}