-
Notifications
You must be signed in to change notification settings - Fork 9.4k
/
Copy pathHeader.php
125 lines (112 loc) · 2.93 KB
/
Header.php
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?php
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
// @codingStandardsIgnoreFile
namespace Magento\Framework\HTTP;
/**
* Library for working with HTTP headers
*/
class Header
{
/**
* Request object
*
* @var \Magento\Framework\App\RequestInterface
*/
protected $_request;
/**
* @var \Magento\Framework\Stdlib\StringUtils
*/
protected $_converter;
/**
* @param \Magento\Framework\App\RequestInterface $httpRequest
* @param \Magento\Framework\Stdlib\StringUtils $converter
*/
public function __construct(\Magento\Framework\App\RequestInterface $httpRequest, \Magento\Framework\Stdlib\StringUtils $converter)
{
$this->_request = $httpRequest;
$this->_converter = $converter;
}
/**
* Retrieve HTTP HOST
*
* @param boolean $clean clean non UTF-8 characters
* @return string
*/
public function getHttpHost($clean = true)
{
return $this->_getHttpCleanValue('HTTP_HOST', $clean);
}
/**
* Retrieve HTTP USER AGENT
*
* @param boolean $clean clean non UTF-8 characters
* @return string
*/
public function getHttpUserAgent($clean = true)
{
return $this->_getHttpCleanValue('HTTP_USER_AGENT', $clean);
}
/**
* Retrieve HTTP ACCEPT LANGUAGE
*
* @param boolean $clean clean non UTF-8 characters
* @return string
*/
public function getHttpAcceptLanguage($clean = true)
{
return $this->_getHttpCleanValue('HTTP_ACCEPT_LANGUAGE', $clean);
}
/**
* Retrieve HTTP ACCEPT CHARSET
*
* @param boolean $clean clean non UTF-8 characters
* @return string
*/
public function getHttpAcceptCharset($clean = true)
{
return $this->_getHttpCleanValue('HTTP_ACCEPT_CHARSET', $clean);
}
/**
* Retrieve HTTP REFERER
*
* @param boolean $clean clean non UTF-8 characters
* @return string
*/
public function getHttpReferer($clean = true)
{
return $this->_getHttpCleanValue('HTTP_REFERER', $clean);
}
/**
* Returns the REQUEST_URI taking into account
* platform differences between Apache and IIS
*
* @param boolean $clean clean non UTF-8 characters
* @return string
*/
public function getRequestUri($clean = false)
{
$uri = $this->_request->getRequestUri();
if ($clean) {
$uri = $this->_converter->cleanString($uri);
}
return $uri;
}
/**
* Retrieve HTTP "clean" value
*
* @param string $var
* @param boolean $clean clean non UTF-8 characters
* @return string
*/
protected function _getHttpCleanValue($var, $clean = true)
{
$value = $this->_request->getServer($var, '');
if ($clean) {
$value = $this->_converter->cleanString($value);
}
return $value;
}
}