コード例 #1
0
 /**
  * Determines the header by using passed server configuration.
  *
  * @param string[] $server
  *            The server configuration.
  * @return MapInterface The determined header as a map.
  */
 private function determineHeader(array $server) : MapInterface
 {
     $header = new Map();
     foreach ($server as $name => $value) {
         if (strpos($name, 'HTTP_') === 0) {
             $name = substr($name, 5);
             $name = explode('_', $name);
             $name = array_map('strtolower', $name);
             $name = array_map('ucfirst', $name);
             $name = implode('-', $name);
             $header->set($name, $value);
         }
     }
     return new ReadOnlyMap($header);
 }
コード例 #2
0
 /**
  * Reads the arguments as a map from a list of raw arguments.
  *
  * @param string[] $arguments
  *            List with raw arguments.
  * @return MapInterface Readed arguments as a map.
  */
 private function readArguments(array $arguments) : MapInterface
 {
     $result = new Map();
     $regex = '/^--(?P<name>[a-z_][a-z0-9_-]*)(\\=(?P<value>(.*)))?$/i';
     $matches = [];
     foreach ($arguments as $argument) {
         if (preg_match($regex, $argument, $matches) !== 0) {
             $result->set($matches['name'], trim($matches['value'] ?? '', '"'));
         }
     }
     return new ReadOnlyMap($result);
 }