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 / VarSpecifier.php
independent-analytics / vendor / league / uri / src / UriTemplate Last commit date
Expression.php 3 years ago Template.php 3 years ago VarSpecifier.php 3 years ago VariableBag.php 3 years ago
VarSpecifier.php
90 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\UriTemplate;
13
14 use IAWP\League\Uri\Exceptions\SyntaxError;
15 use function preg_match;
16 final class VarSpecifier
17 {
18 /**
19 * Variables specification regular expression pattern.
20 *
21 * @link https://tools.ietf.org/html/rfc6570#section-2.3
22 */
23 private const REGEXP_VARSPEC = '/^
24 (?<name>(?:[A-z0-9_\\.]|%[0-9a-fA-F]{2})+)
25 (?<modifier>\\:(?<position>\\d+)|\\*)?
26 $/x';
27 /**
28 * @var string
29 */
30 private $name;
31 /**
32 * @var string
33 */
34 private $modifier;
35 /**
36 * @var int
37 */
38 private $position;
39 private function __construct(string $name, string $modifier, int $position)
40 {
41 $this->name = $name;
42 $this->modifier = $modifier;
43 $this->position = $position;
44 }
45 /**
46 * {@inheritDoc}
47 */
48 public static function __set_state(array $properties) : self
49 {
50 return new self($properties['name'], $properties['modifier'], $properties['position']);
51 }
52 public static function createFromString(string $specification) : self
53 {
54 if (1 !== preg_match(self::REGEXP_VARSPEC, $specification, $parsed)) {
55 throw new SyntaxError('The variable specification "' . $specification . '" is invalid.');
56 }
57 $parsed += ['modifier' => '', 'position' => ''];
58 if ('' !== $parsed['position']) {
59 $parsed['position'] = (int) $parsed['position'];
60 $parsed['modifier'] = ':';
61 }
62 if ('' === $parsed['position']) {
63 $parsed['position'] = 0;
64 }
65 if (10000 <= $parsed['position']) {
66 throw new SyntaxError('The variable specification "' . $specification . '" is invalid the position modifier must be lower than 10000.');
67 }
68 return new self($parsed['name'], $parsed['modifier'], $parsed['position']);
69 }
70 public function toString() : string
71 {
72 if (0 < $this->position) {
73 return $this->name . $this->modifier . $this->position;
74 }
75 return $this->name . $this->modifier;
76 }
77 public function name() : string
78 {
79 return $this->name;
80 }
81 public function modifier() : string
82 {
83 return $this->modifier;
84 }
85 public function position() : int
86 {
87 return $this->position;
88 }
89 }
90