PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.15.4
Independent Analytics – WordPress Analytics Plugin v2.15.4
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 1 month ago UriTemplate 1 month ago Http.php 1 month ago HttpFactory.php 2 years ago Uri.php 1 month ago UriInfo.php 1 month ago UriResolver.php 1 month ago UriString.php 1 month ago UriTemplate.php 1 month ago
UriTemplate.php
117 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 IAWPSCOPED\League\Uri;
13
14 use IAWPSCOPED\League\Uri\Contracts\UriException;
15 use IAWPSCOPED\League\Uri\Contracts\UriInterface;
16 use IAWPSCOPED\League\Uri\Exceptions\SyntaxError;
17 use IAWPSCOPED\League\Uri\Exceptions\TemplateCanNotBeExpanded;
18 use IAWPSCOPED\League\Uri\UriTemplate\Template;
19 use IAWPSCOPED\League\Uri\UriTemplate\VariableBag;
20 use TypeError;
21 /**
22 * Defines the URI Template syntax and the process for expanding a URI Template into a URI reference.
23 *
24 * @link https://tools.ietf.org/html/rfc6570
25 * @package League\Uri
26 * @author Ignace Nyamagana Butera <nyamsprod@gmail.com>
27 * @since 6.1.0
28 *
29 * Based on GuzzleHttp\UriTemplate class in Guzzle v6.5.
30 * @link https://github.com/guzzle/guzzle/blob/6.5/src/UriTemplate.php
31 * @internal
32 */
33 final class UriTemplate
34 {
35 private Template $template;
36 private VariableBag $defaultVariables;
37 /**
38 * @param object|string $template a string or an object with the __toString method
39 *
40 * @throws TypeError if the template is not a string or an object with the __toString method
41 * @throws SyntaxError if the template syntax is invalid
42 * @throws TemplateCanNotBeExpanded if the template variables are invalid
43 */
44 public function __construct($template, array $defaultVariables = [])
45 {
46 $this->template = Template::createFromString($template);
47 $this->defaultVariables = $this->filterVariables($defaultVariables);
48 }
49 public static function __set_state(array $properties) : self
50 {
51 return new self($properties['template']->toString(), $properties['defaultVariables']->all());
52 }
53 /**
54 * Filters out variables for the given template.
55 *
56 * @param array<string,string|array<string>> $variables
57 */
58 private function filterVariables(array $variables) : VariableBag
59 {
60 $output = new VariableBag();
61 foreach ($this->template->variableNames() as $name) {
62 if (isset($variables[$name])) {
63 $output->assign($name, $variables[$name]);
64 }
65 }
66 return $output;
67 }
68 /**
69 * The template string.
70 */
71 public function getTemplate() : string
72 {
73 return $this->template->toString();
74 }
75 /**
76 * Returns the names of the variables in the template, in order.
77 *
78 * @return string[]
79 */
80 public function getVariableNames() : array
81 {
82 return $this->template->variableNames();
83 }
84 /**
85 * Returns the default values used to expand the template.
86 *
87 * The returned list only contains variables whose name is part of the current template.
88 *
89 * @return array<string,string|array>
90 */
91 public function getDefaultVariables() : array
92 {
93 return $this->defaultVariables->all();
94 }
95 /**
96 * Returns a new instance with the updated default variables.
97 *
98 * This method MUST retain the state of the current instance, and return
99 * an instance that contains the modified default variables.
100 *
101 * If present, variables whose name is not part of the current template
102 * possible variable names are removed.
103 */
104 public function withDefaultVariables(array $defaultDefaultVariables) : self
105 {
106 return new self($this->template->toString(), $this->filterVariables($defaultDefaultVariables)->all());
107 }
108 /**
109 * @throws TemplateCanNotBeExpanded if the variable contains nested array values
110 * @throws UriException if the resulting expansion can not be converted to a UriInterface instance
111 */
112 public function expand(array $variables = []) : UriInterface
113 {
114 return Uri::createFromString($this->template->expand($this->filterVariables($variables)->replace($this->defaultVariables)));
115 }
116 }
117