PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 1.18
Independent Analytics – WordPress Analytics Plugin v1.18
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / league / uri / src / UriTemplate.php
independent-analytics / vendor / league / uri / src Last commit date
Exceptions 3 years ago UriTemplate 3 years ago Http.php 3 years ago HttpFactory.php 3 years ago Uri.php 3 years ago UriInfo.php 3 years ago UriResolver.php 3 years ago UriString.php 3 years ago UriTemplate.php 3 years ago
UriTemplate.php
124 lines
1 <?php
2
3 /**
4 * League.Uri (https://uri.thephpleague.com)
5 *
6 * (c) Ignace Nyamagana Butera <nyamsprod@gmail.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11 declare (strict_types=1);
12 namespace IAWP\League\Uri;
13
14 use IAWP\League\Uri\Contracts\UriException;
15 use IAWP\League\Uri\Contracts\UriInterface;
16 use IAWP\League\Uri\Exceptions\SyntaxError;
17 use IAWP\League\Uri\Exceptions\TemplateCanNotBeExpanded;
18 use IAWP\League\Uri\UriTemplate\Template;
19 use IAWP\League\Uri\UriTemplate\VariableBag;
20 /**
21 * Defines the URI Template syntax and the process for expanding a URI Template into a URI reference.
22 *
23 * @link https://tools.ietf.org/html/rfc6570
24 * @package League\Uri
25 * @author Ignace Nyamagana Butera <nyamsprod@gmail.com>
26 * @since 6.1.0
27 *
28 * Based on GuzzleHttp\UriTemplate class in Guzzle v6.5.
29 * @link https://github.com/guzzle/guzzle/blob/6.5/src/UriTemplate.php
30 */
31 final class UriTemplate
32 {
33 /**
34 * @var Template
35 */
36 private $template;
37 /**
38 * @var VariableBag
39 */
40 private $defaultVariables;
41 /**
42 * @param object|string $template a string or an object with the __toString method
43 *
44 * @throws \TypeError if the template is not a string or an object with the __toString method
45 * @throws SyntaxError if the template syntax is invalid
46 * @throws TemplateCanNotBeExpanded if the template variables are invalid
47 */
48 public function __construct($template, array $defaultVariables = [])
49 {
50 $this->template = Template::createFromString($template);
51 $this->defaultVariables = $this->filterVariables($defaultVariables);
52 }
53 public static function __set_state(array $properties) : self
54 {
55 return new self($properties['template']->toString(), $properties['defaultVariables']->all());
56 }
57 /**
58 * Filters out variables for the given template.
59 *
60 * @param array<string,string|array<string>> $variables
61 */
62 private function filterVariables(array $variables) : VariableBag
63 {
64 $output = new VariableBag();
65 foreach ($this->template->variableNames() as $name) {
66 if (isset($variables[$name])) {
67 $output->assign($name, $variables[$name]);
68 }
69 }
70 return $output;
71 }
72 /**
73 * The template string.
74 */
75 public function getTemplate() : string
76 {
77 return $this->template->toString();
78 }
79 /**
80 * Returns the names of the variables in the template, in order.
81 *
82 * @return string[]
83 */
84 public function getVariableNames() : array
85 {
86 return $this->template->variableNames();
87 }
88 /**
89 * Returns the default values used to expand the template.
90 *
91 * The returned list only contains variables whose name is part of the current template.
92 *
93 * @return array<string,string|array>
94 */
95 public function getDefaultVariables() : array
96 {
97 return $this->defaultVariables->all();
98 }
99 /**
100 * Returns a new instance with the updated default variables.
101 *
102 * This method MUST retain the state of the current instance, and return
103 * an instance that contains the modified default variables.
104 *
105 * If present, variables whose name is not part of the current template
106 * possible variable names are removed.
107 */
108 public function withDefaultVariables(array $defaultDefaultVariables) : self
109 {
110 $clone = clone $this;
111 $clone->defaultVariables = $this->filterVariables($defaultDefaultVariables);
112 return $clone;
113 }
114 /**
115 * @throws TemplateCanNotBeExpanded if the variable contains nested array values
116 * @throws UriException if the resulting expansion can not be converted to a UriInterface instance
117 */
118 public function expand(array $variables = []) : UriInterface
119 {
120 $uriString = $this->template->expand($this->filterVariables($variables)->replace($this->defaultVariables));
121 return Uri::createFromString($uriString);
122 }
123 }
124