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 / ServiceLocator.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
ServiceLocator.php
107 lines
1 <?php
2 namespace MailPoetVendor\Symfony\Component\DependencyInjection;
3 if (!defined('ABSPATH')) exit;
4 use MailPoetVendor\Psr\Container\ContainerExceptionInterface;
5 use MailPoetVendor\Psr\Container\NotFoundExceptionInterface;
6 use MailPoetVendor\Symfony\Component\DependencyInjection\Exception\RuntimeException;
7 use MailPoetVendor\Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException;
8 use MailPoetVendor\Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
9 use MailPoetVendor\Symfony\Contracts\Service\ServiceLocatorTrait;
10 use MailPoetVendor\Symfony\Contracts\Service\ServiceProviderInterface;
11 use MailPoetVendor\Symfony\Contracts\Service\ServiceSubscriberInterface;
12 class ServiceLocator implements ServiceProviderInterface
13 {
14 use ServiceLocatorTrait {
15 get as private doGet;
16 }
17 private $externalId;
18 private $container;
19 public function get(string $id)
20 {
21 if (!$this->externalId) {
22 return $this->doGet($id);
23 }
24 try {
25 return $this->doGet($id);
26 } catch (RuntimeException $e) {
27 $what = \sprintf('service "%s" required by "%s"', $id, $this->externalId);
28 $message = \preg_replace('/service "\\.service_locator\\.[^"]++"/', $what, $e->getMessage());
29 if ($e->getMessage() === $message) {
30 $message = \sprintf('Cannot resolve %s: %s', $what, $message);
31 }
32 $r = new \ReflectionProperty($e, 'message');
33 $r->setAccessible(\true);
34 $r->setValue($e, $message);
35 throw $e;
36 }
37 }
38 public function __invoke(string $id)
39 {
40 return isset($this->factories[$id]) ? $this->get($id) : null;
41 }
42 public function withContext(string $externalId, Container $container) : self
43 {
44 $locator = clone $this;
45 $locator->externalId = $externalId;
46 $locator->container = $container;
47 return $locator;
48 }
49 private function createNotFoundException(string $id) : NotFoundExceptionInterface
50 {
51 if ($this->loading) {
52 $msg = \sprintf('The service "%s" has a dependency on a non-existent service "%s". This locator %s', \end($this->loading), $id, $this->formatAlternatives());
53 return new ServiceNotFoundException($id, \end($this->loading) ?: null, null, [], $msg);
54 }
55 $class = \debug_backtrace(\DEBUG_BACKTRACE_PROVIDE_OBJECT | \DEBUG_BACKTRACE_IGNORE_ARGS, 4);
56 $class = isset($class[3]['object']) ? \get_class($class[3]['object']) : null;
57 $externalId = $this->externalId ?: $class;
58 $msg = [];
59 $msg[] = \sprintf('Service "%s" not found:', $id);
60 if (!$this->container) {
61 $class = null;
62 } elseif ($this->container->has($id) || isset($this->container->getRemovedIds()[$id])) {
63 $msg[] = 'even though it exists in the app\'s container,';
64 } else {
65 try {
66 $this->container->get($id);
67 $class = null;
68 } catch (ServiceNotFoundException $e) {
69 if ($e->getAlternatives()) {
70 $msg[] = \sprintf('did you mean %s? Anyway,', $this->formatAlternatives($e->getAlternatives(), 'or'));
71 } else {
72 $class = null;
73 }
74 }
75 }
76 if ($externalId) {
77 $msg[] = \sprintf('the container inside "%s" is a smaller service locator that %s', $externalId, $this->formatAlternatives());
78 } else {
79 $msg[] = \sprintf('the current service locator %s', $this->formatAlternatives());
80 }
81 if (!$class) {
82 // no-op
83 } elseif (\is_subclass_of($class, ServiceSubscriberInterface::class)) {
84 $msg[] = \sprintf('Unless you need extra laziness, try using dependency injection instead. Otherwise, you need to declare it using "%s::getSubscribedServices()".', \preg_replace('/([^\\\\]++\\\\)++/', '', $class));
85 } else {
86 $msg[] = 'Try using dependency injection instead.';
87 }
88 return new ServiceNotFoundException($id, \end($this->loading) ?: null, null, [], \implode(' ', $msg));
89 }
90 private function createCircularReferenceException(string $id, array $path) : ContainerExceptionInterface
91 {
92 return new ServiceCircularReferenceException($id, $path);
93 }
94 private function formatAlternatives(?array $alternatives = null, string $separator = 'and') : string
95 {
96 $format = '"%s"%s';
97 if (null === $alternatives) {
98 if (!($alternatives = \array_keys($this->factories))) {
99 return 'is empty...';
100 }
101 $format = \sprintf('only knows about the %s service%s.', $format, 1 < \count($alternatives) ? 's' : '');
102 }
103 $last = \array_pop($alternatives);
104 return \sprintf($format, $alternatives ? \implode('", "', $alternatives) : $last, $alternatives ? \sprintf(' %s "%s"', $separator, $last) : '');
105 }
106 }
107