PluginProbe ʕ •ᴥ•ʔ
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode / 3.11.2
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode v3.11.2
4.7.2 4.7.1 trunk 2.3.0 2.4.0 2.4.1 2.4.2 2.5.0 3.0.0 3.0.1 3.1.0 3.10.0 3.10.1 3.11.1 3.11.2 3.11.3 3.2.0 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.5 3.6.6 3.7.0 3.7.1 3.8.0 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.2.0 4.2.1 4.2.10 4.2.11 4.2.12 4.2.13 4.2.14 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.3.10 4.3.11 4.3.12 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.3.7.1 4.3.8 4.3.9 4.3.9.1 4.4.0 4.4.1 4.4.2 4.5.0 4.5.1 4.5.10 4.5.11 4.5.2 4.5.3 4.5.4 4.5.5 4.5.6 4.5.7 4.5.8 4.5.9 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.6.6 4.6.7 4.7.0
cookiebot / addons / inc / Dependencies / DI / Definition / Resolver / AliasResolver.php
cookiebot / addons / inc / Dependencies / DI / Definition / Resolver Last commit date
AliasResolver.php 5 years ago ArrayResolver.php 5 years ago DecoratorResolver.php 5 years ago DefinitionResolver.php 5 years ago EnvironmentVariableResolver.php 5 years ago FactoryResolver.php 5 years ago InstanceInjector.php 5 years ago ObjectCreator.php 5 years ago ParameterResolver.php 5 years ago ResolverDispatcher.php 5 years ago StringResolver.php 5 years ago ValueResolver.php 5 years ago
AliasResolver.php
78 lines
1 <?php
2 /**
3 * PHP-DI
4 *
5 * @link http://mnapoli.github.com/PHP-DI/
6 * @copyright Matthieu Napoli (http://mnapoli.fr/)
7 * @license http://www.opensource.org/licenses/mit-license.php MIT (see the LICENSE file)
8 */
9
10 namespace Cybot\Dependencies\DI\Definition\Resolver;
11
12 use Cybot\Dependencies\DI\Definition\AliasDefinition;
13 use Cybot\Dependencies\DI\Definition\Definition;
14 use Cybot\Dependencies\Interop\Container\ContainerInterface;
15
16 /**
17 * Resolves an alias definition to a value.
18 *
19 * @since 4.0
20 * @author Matthieu Napoli <matthieu@mnapoli.fr>
21 */
22 class AliasResolver implements DefinitionResolver
23 {
24 /**
25 * @var ContainerInterface
26 */
27 private $container;
28
29 /**
30 * The resolver needs a container.
31 * This container will be used to get the entry to which the alias points to.
32 *
33 * @param ContainerInterface $container
34 */
35 public function __construct(ContainerInterface $container)
36 {
37 $this->container = $container;
38 }
39
40 /**
41 * Resolve an alias definition to a value.
42 *
43 * This will return the entry the alias points to.
44 *
45 * @param AliasDefinition $definition
46 *
47 * {@inheritdoc}
48 */
49 public function resolve(Definition $definition, array $parameters = [])
50 {
51 $this->assertIsAliasDefinition($definition);
52
53 return $this->container->get($definition->getTargetEntryName());
54 }
55
56 /**
57 * @param AliasDefinition $definition
58 *
59 * {@inheritdoc}
60 */
61 public function isResolvable(Definition $definition, array $parameters = [])
62 {
63 $this->assertIsAliasDefinition($definition);
64
65 return $this->container->has($definition->getTargetEntryName());
66 }
67
68 private function assertIsAliasDefinition(Definition $definition)
69 {
70 if (!$definition instanceof AliasDefinition) {
71 throw new \InvalidArgumentException(sprintf(
72 'This definition resolver is only compatible with AliasDefinition objects, %s given',
73 get_class($definition)
74 ));
75 }
76 }
77 }
78