PluginProbe
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode / 3.10.1
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode v3.10.1
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 / InstanceInjector.php

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

68 lines 1.9 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\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 <[email protected]>
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