Copied!

Represents a relative resource template, meaning that it will never contain a leading slash or trailing verb (":").

Examples: projects projects/{project} foo/{bar=**}/fizz/*

Templates use the syntax of the API platform; see https://github.com/googleapis/api-common-protos/blob/master/google/api/http.proto for details. A template consists of a sequence of literals, wildcards, and variable bindings, where each binding can have a sub-path. A string representation can be parsed into an instance of AbsoluteResourceTemplate, which can then be used to perform matching and instantiation.

  • internal
CloneableInstantiable
Methods
public __construct(string $path)
 

RelativeResourceTemplate constructor.

  • param string $path
  • throws \ValidationException
public __toString() : string
 
    public match(string $path)
     
      public matches(string $path)
       
        public render(array $bindings)
         
          Properties
          private array $segments
           
          • var \Segment[]
          Methods
          private static buildKeySegmentTuples(array $segments, ?string $separator = NULL)
           
          • param \Segment[] $segments
          • param string|null $separator An optional string separator
          • return array[] A list of [string, Segment] tuples
          private static countDoubleWildcards(array $segments)
           
          • param \Segment[] $segments
          • return int
          private static flattenKeySegmentTuples(array $keySegmentTuples)
           
          • param array[] $keySegmentTuples A list of [string, Segment] tuples
          • return array[] A list of [string, Segment] tuples
          private matchException(string $path, string $reason)
          private renderingException(array $bindings, string $reason)
          private static renderSegments(array $segmentsToRender)
           

          Joins segments using their separators.

          • param array $segmentsToRender
          • return string
          Methods
          private static buildKeySegmentTuples(array $segments, ?string $separator = NULL)
           
          • param \Segment[] $segments
          • param string|null $separator An optional string separator
          • return array[] A list of [string, Segment] tuples
          private static countDoubleWildcards(array $segments)
           
          • param \Segment[] $segments
          • return int
          private static flattenKeySegmentTuples(array $keySegmentTuples)
           
          • param array[] $keySegmentTuples A list of [string, Segment] tuples
          • return array[] A list of [string, Segment] tuples
          private static renderSegments(array $segmentsToRender)
           

          Joins segments using their separators.

          • param array $segmentsToRender
          • return string
          © 2025 Bruce Wells