You are here

private function UriTemplate::parseExpression in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/guzzlehttp/guzzle/src/UriTemplate.php \GuzzleHttp\UriTemplate::parseExpression()

Parse an expression into parts

Parameters

string $expression Expression to parse:

Return value

array Returns an associative array of parts

1 call to UriTemplate::parseExpression()
UriTemplate::expandMatch in vendor/guzzlehttp/guzzle/src/UriTemplate.php
Process an expansion

File

vendor/guzzlehttp/guzzle/src/UriTemplate.php, line 61

Class

UriTemplate
Expands URI templates. Userland implementation of PECL uri_template.

Namespace

GuzzleHttp

Code

private function parseExpression($expression) {
  $result = array();
  if (isset(self::$operatorHash[$expression[0]])) {
    $result['operator'] = $expression[0];
    $expression = substr($expression, 1);
  }
  else {
    $result['operator'] = '';
  }
  foreach (explode(',', $expression) as $value) {
    $value = trim($value);
    $varspec = array();
    if ($colonPos = strpos($value, ':')) {
      $varspec['value'] = substr($value, 0, $colonPos);
      $varspec['modifier'] = ':';
      $varspec['position'] = (int) substr($value, $colonPos + 1);
    }
    elseif (substr($value, -1) == '*') {
      $varspec['modifier'] = '*';
      $varspec['value'] = substr($value, 0, -1);
    }
    else {
      $varspec['value'] = (string) $value;
      $varspec['modifier'] = '';
    }
    $result['values'][] = $varspec;
  }
  return $result;
}