PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.34.3
MailPoet – Newsletters, Email Marketing, and Automation v5.34.3
5.36.0 5.35.1 5.35.0 5.34.3 5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / vendor-prefixed / symfony / dependency-injection / ParameterBag / ParameterBag.php
mailpoet / vendor-prefixed / symfony / dependency-injection / ParameterBag Last commit date
ContainerBag.php 4 years ago ContainerBagInterface.php 4 years ago EnvPlaceholderParameterBag.php 4 years ago FrozenParameterBag.php 4 years ago ParameterBag.php 4 years ago ParameterBagInterface.php 4 years ago index.php 3 years ago
ParameterBag.php
168 lines
1 <?php
2 namespace MailPoetVendor\Symfony\Component\DependencyInjection\ParameterBag;
3 if (!defined('ABSPATH')) exit;
4 use MailPoetVendor\Symfony\Component\DependencyInjection\Exception\ParameterCircularReferenceException;
5 use MailPoetVendor\Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException;
6 use MailPoetVendor\Symfony\Component\DependencyInjection\Exception\RuntimeException;
7 class ParameterBag implements ParameterBagInterface
8 {
9 protected $parameters = [];
10 protected $resolved = \false;
11 public function __construct(array $parameters = [])
12 {
13 $this->add($parameters);
14 }
15 public function clear()
16 {
17 $this->parameters = [];
18 }
19 public function add(array $parameters)
20 {
21 foreach ($parameters as $key => $value) {
22 $this->set($key, $value);
23 }
24 }
25 public function all()
26 {
27 return $this->parameters;
28 }
29 public function get(string $name)
30 {
31 if (!\array_key_exists($name, $this->parameters)) {
32 if (!$name) {
33 throw new ParameterNotFoundException($name);
34 }
35 $alternatives = [];
36 foreach ($this->parameters as $key => $parameterValue) {
37 $lev = \levenshtein($name, $key);
38 if ($lev <= \strlen($name) / 3 || \str_contains($key, $name)) {
39 $alternatives[] = $key;
40 }
41 }
42 $nonNestedAlternative = null;
43 if (!\count($alternatives) && \str_contains($name, '.')) {
44 $namePartsLength = \array_map('strlen', \explode('.', $name));
45 $key = \substr($name, 0, -1 * (1 + \array_pop($namePartsLength)));
46 while (\count($namePartsLength)) {
47 if ($this->has($key)) {
48 if (\is_array($this->get($key))) {
49 $nonNestedAlternative = $key;
50 }
51 break;
52 }
53 $key = \substr($key, 0, -1 * (1 + \array_pop($namePartsLength)));
54 }
55 }
56 throw new ParameterNotFoundException($name, null, null, null, $alternatives, $nonNestedAlternative);
57 }
58 return $this->parameters[$name];
59 }
60 public function set(string $name, $value)
61 {
62 $this->parameters[$name] = $value;
63 }
64 public function has(string $name)
65 {
66 return \array_key_exists($name, $this->parameters);
67 }
68 public function remove(string $name)
69 {
70 unset($this->parameters[$name]);
71 }
72 public function resolve()
73 {
74 if ($this->resolved) {
75 return;
76 }
77 $parameters = [];
78 foreach ($this->parameters as $key => $value) {
79 try {
80 $value = $this->resolveValue($value);
81 $parameters[$key] = $this->unescapeValue($value);
82 } catch (ParameterNotFoundException $e) {
83 $e->setSourceKey($key);
84 throw $e;
85 }
86 }
87 $this->parameters = $parameters;
88 $this->resolved = \true;
89 }
90 public function resolveValue($value, array $resolving = [])
91 {
92 if (\is_array($value)) {
93 $args = [];
94 foreach ($value as $k => $v) {
95 $args[\is_string($k) ? $this->resolveValue($k, $resolving) : $k] = $this->resolveValue($v, $resolving);
96 }
97 return $args;
98 }
99 if (!\is_string($value) || 2 > \strlen($value)) {
100 return $value;
101 }
102 return $this->resolveString($value, $resolving);
103 }
104 public function resolveString(string $value, array $resolving = [])
105 {
106 // we do this to deal with non string values (Boolean, integer, ...)
107 // as the preg_replace_callback throw an exception when trying
108 // a non-string in a parameter value
109 if (\preg_match('/^%([^%\\s]+)%$/', $value, $match)) {
110 $key = $match[1];
111 if (isset($resolving[$key])) {
112 throw new ParameterCircularReferenceException(\array_keys($resolving));
113 }
114 $resolving[$key] = \true;
115 return $this->resolved ? $this->get($key) : $this->resolveValue($this->get($key), $resolving);
116 }
117 return \preg_replace_callback('/%%|%([^%\\s]+)%/', function ($match) use($resolving, $value) {
118 // skip %%
119 if (!isset($match[1])) {
120 return '%%';
121 }
122 $key = $match[1];
123 if (isset($resolving[$key])) {
124 throw new ParameterCircularReferenceException(\array_keys($resolving));
125 }
126 $resolved = $this->get($key);
127 if (!\is_string($resolved) && !\is_numeric($resolved)) {
128 throw new RuntimeException(\sprintf('A string value must be composed of strings and/or numbers, but found parameter "%s" of type "%s" inside string value "%s".', $key, \get_debug_type($resolved), $value));
129 }
130 $resolved = (string) $resolved;
131 $resolving[$key] = \true;
132 return $this->isResolved() ? $resolved : $this->resolveString($resolved, $resolving);
133 }, $value);
134 }
135 public function isResolved()
136 {
137 return $this->resolved;
138 }
139 public function escapeValue($value)
140 {
141 if (\is_string($value)) {
142 return \str_replace('%', '%%', $value);
143 }
144 if (\is_array($value)) {
145 $result = [];
146 foreach ($value as $k => $v) {
147 $result[$k] = $this->escapeValue($v);
148 }
149 return $result;
150 }
151 return $value;
152 }
153 public function unescapeValue($value)
154 {
155 if (\is_string($value)) {
156 return \str_replace('%%', '%', $value);
157 }
158 if (\is_array($value)) {
159 $result = [];
160 foreach ($value as $k => $v) {
161 $result[$k] = $this->unescapeValue($v);
162 }
163 return $result;
164 }
165 return $value;
166 }
167 }
168