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.4 4.7.5 4.7.3 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 All 95 releases
cookiebot / addons / inc / Dependencies / DI / Definition / Resolver / AliasResolver.php

AliasResolver.php in Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode 3.11.2, at addons/inc/Dependencies/DI/Definition/Resolver/AliasResolver.php

78 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 <[email protected]>
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