src/handler/ServerMacroHandler.php

Summary

Maintainability
A
1 hr
Test Coverage
<?php
declare(strict_types=1);

namespace stk2k\util\handler;

use stk2k\util\MacroHandlerInterface;

class ServerMacroHandler implements MacroHandlerInterface
{
    /**
     * Process macro
     *
     * @param string $keyword
     *
     * @return string|NULL
     */
    public function process(string $keyword) : string
    {
        switch($keyword){
            case 'SERVER_NAME':
            case 'REQUEST_METHOD':
            case 'REQUEST_TIME':
            case 'REQUEST_TIME_FLOAT':
            case 'QUERY_STRING':
            case 'HTTP_ACCEPT':
            case 'HTTP_ACCEPT_CHARSET':
            case 'HTTP_ACCEPT_ENCODING':
            case 'HTTP_ACCEPT_LANGUAGE':
            case 'HTTP_CONNECTION':
            case 'HTTP_HOST':
            case 'HTTP_REFERER':
            case 'HTTP_USER_AGENT':
            case 'HTTPS':
            case 'REMOTE_ADDR':
            case 'REMOTE_HOST':
            case 'REMOTE_PORT':
            case 'REMOTE_USER':
            case 'REDIRECT_REMOTE_USER':
            case 'SCRIPT_FILENAME':
            case 'SERVER_ADMIN':
            case 'SERVER_PORT':
            case 'SERVER_SIGNATURE':
            case 'SCRIPT_NAME':
            case 'REQUEST_URI':
            case 'PHP_AUTH_DIGEST':
            case 'PHP_AUTH_USER':
            case 'PHP_AUTH_PW':
            case 'AUTH_TYPE':
            case 'PATH_INFO':
            case 'ORIG_PATH_INFO':
                return $_SERVER[$keyword] ?? $keyword;
        }
        return $keyword;
    }
}