1 | <?php |
||
15 | class Request |
||
16 | { |
||
17 | //@see: http://developer.sugarcrm.com/2013/08/30/doing-put-and-delete-with-curl-in-php/ |
||
18 | const HTTP_METHOD_DELETE = 'DELETE'; |
||
19 | const HTTP_METHOD_GET = 'GET'; |
||
20 | const HTTP_METHOD_PATCH = 'PATCH'; |
||
21 | const HTTP_METHOD_POST = 'POST'; |
||
22 | const HTTP_METHOD_PUT = 'PUT'; |
||
23 | |||
24 | /** @var array */ |
||
25 | private $defaultHeaderLines = []; |
||
26 | |||
27 | /** @var array */ |
||
28 | private $defaultOptions = []; |
||
29 | |||
30 | /** @var DispatcherInterface */ |
||
31 | private $dispatcher; |
||
32 | |||
33 | /** @var array */ |
||
34 | private $headerLines = []; |
||
35 | |||
36 | /** @var Merge */ |
||
37 | private $merge; |
||
38 | |||
39 | /** @var array */ |
||
40 | private $options = []; |
||
41 | |||
42 | /** |
||
43 | * @param DispatcherInterface $dispatcher |
||
44 | * @param Merge $merge |
||
45 | * @param array $defaultHeaderLines |
||
46 | * <int> => <value> |
||
47 | * @param array $defaultOptions |
||
48 | * either: |
||
49 | * <int> => <value> |
||
50 | * or: |
||
51 | * <identifier> => <value> |
||
52 | */ |
||
53 | public function __construct(DispatcherInterface $dispatcher, Merge $merge, array $defaultHeaderLines = [], array $defaultOptions = []) |
||
60 | |||
61 | /** |
||
62 | * @return Request |
||
63 | */ |
||
64 | public function __clone() |
||
73 | |||
74 | /** |
||
75 | * @param HeaderLineInterface $line |
||
76 | */ |
||
77 | public function addHeaderLine(HeaderLineInterface $line) |
||
81 | |||
82 | /** |
||
83 | * @param OptionInterface $option |
||
84 | */ |
||
85 | public function addOption(OptionInterface $option) |
||
89 | |||
90 | /** |
||
91 | * @param string $line - CURLOPT_* - see: http://php.net/manual/en/function.curl-setopt.php |
||
92 | */ |
||
93 | public function addRawHeaderLine($line) |
||
97 | |||
98 | /** |
||
99 | * @param string $key - CURLOPT_* - see: http://php.net/manual/en/function.curl-setopt.php |
||
100 | * @param mixed $value |
||
101 | */ |
||
102 | public function addRawOption($key, $value) |
||
106 | |||
107 | /** |
||
108 | * @param string $url |
||
109 | * @param array $parameters |
||
110 | * @return Response |
||
111 | */ |
||
112 | public function get($url, array $parameters = []) |
||
121 | |||
122 | /** |
||
123 | * @param string $url |
||
124 | * @param array $parameters |
||
125 | * @param null|string|array $data |
||
126 | * @return Response |
||
127 | */ |
||
128 | public function post($url, array $parameters = [], $data = null) |
||
137 | |||
138 | /** |
||
139 | * @param string $url |
||
140 | * @param array $parameters |
||
141 | * @param null|string|array $data |
||
142 | * @return Response |
||
143 | */ |
||
144 | public function put($url, array $parameters = [], $data = null) |
||
153 | |||
154 | /** |
||
155 | * @param string $url |
||
156 | * @param array $parameters |
||
157 | * @param null|string|array $data |
||
158 | * @return Response |
||
159 | */ |
||
160 | public function patch($url, array $parameters = [], $data = null) |
||
169 | |||
170 | /** |
||
171 | * @param string $url |
||
172 | * @param array $parameters |
||
173 | * @param null|string|array $data |
||
174 | * @return Response |
||
175 | */ |
||
176 | public function delete($url, array $parameters = [], $data = null) |
||
185 | |||
186 | /** |
||
187 | * @see: https://de.wikipedia.org/wiki/Representational_State_Transfer |
||
188 | public function head($url) |
||
189 | { |
||
190 | } |
||
191 | public function options($url) |
||
192 | { |
||
193 | } |
||
194 | public function trace($url) |
||
195 | { |
||
196 | } |
||
197 | */ |
||
198 | |||
199 | /** |
||
200 | * @param bool|false $alsoTheDefaults |
||
201 | */ |
||
202 | public function reset($alsoTheDefaults = false) |
||
212 | |||
213 | /** |
||
214 | * @param array $options |
||
215 | * @param mixed $data |
||
216 | * @return array |
||
217 | */ |
||
218 | private function addDataToTheOptionsIfDataIsValid(array $options, $data) |
||
238 | |||
239 | /** |
||
240 | * @param array $parameters |
||
241 | * @param string $url |
||
242 | * @return string |
||
243 | */ |
||
244 | private function addParametersToTheUrlIfParametersAreProvided(array $parameters, $url) |
||
263 | |||
264 | /** |
||
265 | * @param string $url |
||
266 | * @param string $method |
||
267 | * @param null|array $parameters |
||
268 | * @param null|string|array $data |
||
269 | * @return Response |
||
270 | */ |
||
271 | private function execute($url, $method, array $parameters = [], $data = null) |
||
293 | } |
||
294 |