PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.36.0
MailPoet – Newsletters, Email Marketing, and Automation v5.36.0
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 / Container.php
mailpoet / vendor-prefixed / symfony / dependency-injection Last commit date
Argument 2 years ago Attribute 2 years ago Exception 2 years ago ParameterBag 3 years ago Alias.php 4 years ago ChildDefinition.php 4 years ago Container.php 2 years ago ContainerAwareInterface.php 2 years ago ContainerAwareTrait.php 2 years ago ContainerBuilder.php 2 years ago ContainerInterface.php 4 years ago Definition.php 2 years ago EnvVarLoaderInterface.php 4 years ago EnvVarProcessor.php 2 years ago EnvVarProcessorInterface.php 4 years ago ExpressionLanguage.php 2 years ago ExpressionLanguageProvider.php 2 years ago Parameter.php 4 years ago Reference.php 4 years ago ReverseContainer.php 2 years ago ServiceLocator.php 2 years ago TaggedContainerInterface.php 4 years ago TypedReference.php 2 years ago Variable.php 4 years ago index.php 3 years ago
Container.php
254 lines
1 <?php
2 namespace MailPoetVendor\Symfony\Component\DependencyInjection;
3 if (!defined('ABSPATH')) exit;
4 use MailPoetVendor\Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
5 use MailPoetVendor\Symfony\Component\DependencyInjection\Argument\ServiceLocator as ArgumentServiceLocator;
6 use MailPoetVendor\Symfony\Component\DependencyInjection\Exception\EnvNotFoundException;
7 use MailPoetVendor\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
8 use MailPoetVendor\Symfony\Component\DependencyInjection\Exception\ParameterCircularReferenceException;
9 use MailPoetVendor\Symfony\Component\DependencyInjection\Exception\RuntimeException;
10 use MailPoetVendor\Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException;
11 use MailPoetVendor\Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
12 use MailPoetVendor\Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag;
13 use MailPoetVendor\Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
14 use MailPoetVendor\Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
15 use MailPoetVendor\Symfony\Contracts\Service\ResetInterface;
16 // Help opcache.preload discover always-needed symbols
17 \class_exists(RewindableGenerator::class);
18 \class_exists(ArgumentServiceLocator::class);
19 class Container implements ContainerInterface, ResetInterface
20 {
21 protected $parameterBag;
22 protected $services = [];
23 protected $privates = [];
24 protected $fileMap = [];
25 protected $methodMap = [];
26 protected $factories = [];
27 protected $aliases = [];
28 protected $loading = [];
29 protected $resolving = [];
30 protected $syntheticIds = [];
31 private $envCache = [];
32 private $compiled = \false;
33 private $getEnv;
34 public function __construct(?ParameterBagInterface $parameterBag = null)
35 {
36 $this->parameterBag = $parameterBag ?? new EnvPlaceholderParameterBag();
37 }
38 public function compile()
39 {
40 $this->parameterBag->resolve();
41 $this->parameterBag = new FrozenParameterBag($this->parameterBag->all());
42 $this->compiled = \true;
43 }
44 public function isCompiled()
45 {
46 return $this->compiled;
47 }
48 public function getParameterBag()
49 {
50 return $this->parameterBag;
51 }
52 public function getParameter(string $name)
53 {
54 return $this->parameterBag->get($name);
55 }
56 public function hasParameter(string $name)
57 {
58 return $this->parameterBag->has($name);
59 }
60 public function setParameter(string $name, $value)
61 {
62 $this->parameterBag->set($name, $value);
63 }
64 public function set(string $id, ?object $service)
65 {
66 // Runs the internal initializer; used by the dumped container to include always-needed files
67 if (isset($this->privates['service_container']) && $this->privates['service_container'] instanceof \Closure) {
68 $initialize = $this->privates['service_container'];
69 unset($this->privates['service_container']);
70 $initialize();
71 }
72 if ('service_container' === $id) {
73 throw new InvalidArgumentException('You cannot set service "service_container".');
74 }
75 if (!(isset($this->fileMap[$id]) || isset($this->methodMap[$id]))) {
76 if (isset($this->syntheticIds[$id]) || !isset($this->getRemovedIds()[$id])) {
77 // no-op
78 } elseif (null === $service) {
79 throw new InvalidArgumentException(\sprintf('The "%s" service is private, you cannot unset it.', $id));
80 } else {
81 throw new InvalidArgumentException(\sprintf('The "%s" service is private, you cannot replace it.', $id));
82 }
83 } elseif (isset($this->services[$id])) {
84 throw new InvalidArgumentException(\sprintf('The "%s" service is already initialized, you cannot replace it.', $id));
85 }
86 if (isset($this->aliases[$id])) {
87 unset($this->aliases[$id]);
88 }
89 if (null === $service) {
90 unset($this->services[$id]);
91 return;
92 }
93 $this->services[$id] = $service;
94 }
95 public function has(string $id)
96 {
97 if (isset($this->aliases[$id])) {
98 $id = $this->aliases[$id];
99 }
100 if (isset($this->services[$id])) {
101 return \true;
102 }
103 if ('service_container' === $id) {
104 return \true;
105 }
106 return isset($this->fileMap[$id]) || isset($this->methodMap[$id]);
107 }
108 public function get(string $id, int $invalidBehavior = 1)
109 {
110 return $this->services[$id] ?? $this->services[$id = $this->aliases[$id] ?? $id] ?? ('service_container' === $id ? $this : ($this->factories[$id] ?? [$this, 'make'])($id, $invalidBehavior));
111 }
112 private function make(string $id, int $invalidBehavior)
113 {
114 if (isset($this->loading[$id])) {
115 throw new ServiceCircularReferenceException($id, \array_merge(\array_keys($this->loading), [$id]));
116 }
117 $this->loading[$id] = \true;
118 try {
119 if (isset($this->fileMap[$id])) {
120 return 4 === $invalidBehavior ? null : $this->load($this->fileMap[$id]);
121 } elseif (isset($this->methodMap[$id])) {
122 return 4 === $invalidBehavior ? null : $this->{$this->methodMap[$id]}();
123 }
124 } catch (\Exception $e) {
125 unset($this->services[$id]);
126 throw $e;
127 } finally {
128 unset($this->loading[$id]);
129 }
130 if (1 === $invalidBehavior) {
131 if (!$id) {
132 throw new ServiceNotFoundException($id);
133 }
134 if (isset($this->syntheticIds[$id])) {
135 throw new ServiceNotFoundException($id, null, null, [], \sprintf('The "%s" service is synthetic, it needs to be set at boot time before it can be used.', $id));
136 }
137 if (isset($this->getRemovedIds()[$id])) {
138 throw new ServiceNotFoundException($id, null, null, [], \sprintf('The "%s" service or alias has been removed or inlined when the container was compiled. You should either make it public, or stop using the container directly and use dependency injection instead.', $id));
139 }
140 $alternatives = [];
141 foreach ($this->getServiceIds() as $knownId) {
142 if ('' === $knownId || '.' === $knownId[0]) {
143 continue;
144 }
145 $lev = \levenshtein($id, $knownId);
146 if ($lev <= \strlen($id) / 3 || \str_contains($knownId, $id)) {
147 $alternatives[] = $knownId;
148 }
149 }
150 throw new ServiceNotFoundException($id, null, null, $alternatives);
151 }
152 return null;
153 }
154 public function initialized(string $id)
155 {
156 if (isset($this->aliases[$id])) {
157 $id = $this->aliases[$id];
158 }
159 if ('service_container' === $id) {
160 return \false;
161 }
162 return isset($this->services[$id]);
163 }
164 public function reset()
165 {
166 $services = $this->services + $this->privates;
167 $this->services = $this->factories = $this->privates = [];
168 foreach ($services as $service) {
169 try {
170 if ($service instanceof ResetInterface) {
171 $service->reset();
172 }
173 } catch (\Throwable $e) {
174 continue;
175 }
176 }
177 }
178 public function getServiceIds()
179 {
180 return \array_map('strval', \array_unique(\array_merge(['service_container'], \array_keys($this->fileMap), \array_keys($this->methodMap), \array_keys($this->aliases), \array_keys($this->services))));
181 }
182 public function getRemovedIds()
183 {
184 return [];
185 }
186 public static function camelize(string $id)
187 {
188 return \strtr(\ucwords(\strtr($id, ['_' => ' ', '.' => '_ ', '\\' => '_ '])), [' ' => '']);
189 }
190 public static function underscore(string $id)
191 {
192 return \strtolower(\preg_replace(['/([A-Z]+)([A-Z][a-z])/', '/([a-z\\d])([A-Z])/'], ['\\1_\\2', '\\1_\\2'], \str_replace('_', '.', $id)));
193 }
194 protected function load(string $file)
195 {
196 return require $file;
197 }
198 protected function getEnv(string $name)
199 {
200 if (isset($this->resolving[$envName = "env({$name})"])) {
201 throw new ParameterCircularReferenceException(\array_keys($this->resolving));
202 }
203 if (isset($this->envCache[$name]) || \array_key_exists($name, $this->envCache)) {
204 return $this->envCache[$name];
205 }
206 if (!$this->has($id = 'container.env_var_processors_locator')) {
207 $this->set($id, new ServiceLocator([]));
208 }
209 if (!$this->getEnv) {
210 $this->getEnv = \Closure::fromCallable([$this, 'getEnv']);
211 }
212 $processors = $this->get($id);
213 if (\false !== ($i = \strpos($name, ':'))) {
214 $prefix = \substr($name, 0, $i);
215 $localName = \substr($name, 1 + $i);
216 } else {
217 $prefix = 'string';
218 $localName = $name;
219 }
220 $processor = $processors->has($prefix) ? $processors->get($prefix) : new EnvVarProcessor($this);
221 if (\false === $i) {
222 $prefix = '';
223 }
224 $this->resolving[$envName] = \true;
225 try {
226 return $this->envCache[$name] = $processor->getEnv($prefix, $localName, $this->getEnv);
227 } finally {
228 unset($this->resolving[$envName]);
229 }
230 }
231 protected final function getService($registry, string $id, ?string $method, $load)
232 {
233 if ('service_container' === $id) {
234 return $this;
235 }
236 if (\is_string($load)) {
237 throw new RuntimeException($load);
238 }
239 if (null === $method) {
240 return \false !== $registry ? $this->{$registry}[$id] ?? null : null;
241 }
242 if (\false !== $registry) {
243 return $this->{$registry}[$id] ?? ($this->{$registry}[$id] = $load ? $this->load($method) : $this->{$method}());
244 }
245 if (!$load) {
246 return $this->{$method}();
247 }
248 return ($factory = $this->factories[$id] ?? $this->factories['service_container'][$id] ?? null) ? $factory() : $this->load($method);
249 }
250 private function __clone()
251 {
252 }
253 }
254