composer package updates
[openemr.git] / vendor / zendframework / zend-diactoros / src / functions / normalize_server.php
blob2db4a4a0103facc62a8cde50b2cbdd2ee81a3dc2
1 <?php
2 /**
3 * @see https://github.com/zendframework/zend-diactoros for the canonical source repository
4 * @copyright Copyright (c) 2018 Zend Technologies USA Inc. (https://www.zend.com)
5 * @license https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
6 */
8 namespace Zend\Diactoros;
10 use function is_callable;
12 /**
13 * Marshal the $_SERVER array
15 * Pre-processes and returns the $_SERVER superglobal. In particularly, it
16 * attempts to detect the Authorization header, which is often not aggregated
17 * correctly under various SAPI/httpd combinations.
19 * @param array $server
20 * @param null|callable $apacheRequestHeaderCallback Callback that can be used to
21 * retrieve Apache request headers. This defaults to
22 * `apache_request_headers` under the Apache mod_php.
23 * @return array Either $server verbatim, or with an added HTTP_AUTHORIZATION header.
25 function normalizeServer(array $server, callable $apacheRequestHeaderCallback = null)
27 if (null === $apacheRequestHeaderCallback && is_callable('apache_request_headers')) {
28 $apacheRequestHeaderCallback = 'apache_request_headers';
31 // If the HTTP_AUTHORIZATION value is already set, or the callback is not
32 // callable, we return verbatim
33 if (isset($server['HTTP_AUTHORIZATION'])
34 || ! is_callable($apacheRequestHeaderCallback)
35 ) {
36 return $server;
39 $apacheRequestHeaders = $apacheRequestHeaderCallback();
40 if (isset($apacheRequestHeaders['Authorization'])) {
41 $server['HTTP_AUTHORIZATION'] = $apacheRequestHeaders['Authorization'];
42 return $server;
45 if (isset($apacheRequestHeaders['authorization'])) {
46 $server['HTTP_AUTHORIZATION'] = $apacheRequestHeaders['authorization'];
47 return $server;
50 return $server;