PluginProbe ʕ •ᴥ•ʔ
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode / 3.11.1
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode v3.11.1
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 / InstanceInjector.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
InstanceInjector.php
68 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\Definition;
13 use Cybot\Dependencies\DI\Definition\InstanceDefinition;
14 use Cybot\Dependencies\DI\DependencyException;
15 use Cybot\Dependencies\Interop\Container\Exception\NotFoundException;
16
17 /**
18 * Injects dependencies on an existing instance.
19 *
20 * @since 5.0
21 * @author Matthieu Napoli <matthieu@mnapoli.fr>
22 */
23 class InstanceInjector extends ObjectCreator
24 {
25 /**
26 * Injects dependencies on an existing instance.
27 *
28 * @param InstanceDefinition $definition
29 *
30 * {@inheritdoc}
31 */
32 public function resolve(Definition $definition, array $parameters = [])
33 {
34 $this->assertIsInstanceDefinition($definition);
35
36 try {
37 $this->injectMethodsAndProperties($definition->getInstance(), $definition->getObjectDefinition());
38 } catch (NotFoundException $e) {
39 $message = sprintf(
40 "Error while injecting dependencies into %s: %s",
41 get_class($definition->getInstance()),
42 $e->getMessage()
43 );
44 throw new DependencyException($message, 0, $e);
45 }
46 }
47
48 /**
49 * {@inheritdoc}
50 */
51 public function isResolvable(Definition $definition, array $parameters = [])
52 {
53 $this->assertIsInstanceDefinition($definition);
54
55 return true;
56 }
57
58 private function assertIsInstanceDefinition(Definition $definition)
59 {
60 if (!$definition instanceof InstanceDefinition) {
61 throw new \InvalidArgumentException(sprintf(
62 'This definition resolver is only compatible with InstanceDefinition objects, %s given',
63 get_class($definition)
64 ));
65 }
66 }
67 }
68