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.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 / Dumper / DefinitionDumperDispatcher.php

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

69 lines 2.1 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://php-di.org/
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\Dumper;
11
12 use Cybot\Dependencies\DI\Definition\Definition;
13
14 /**
15 * Dispatch a definition to the appropriate dumper.
16 *
17 * @since 4.1
18 * @author Matthieu Napoli <[email protected]>
19 */
20 class DefinitionDumperDispatcher implements DefinitionDumper
21 {
22 /**
23 * Definition dumpers, indexed by the class of the definition they can dump.
24 *
25 * @var DefinitionDumper[]|null
26 */
27 private $dumpers = [];
28
29 public function __construct($dumpers = null)
30 {
31 $this->dumpers = $dumpers;
32 }
33
34 /**
35 * {@inheritdoc}
36 */
37 public function dump(Definition $definition)
38 {
39 $this->initialize();
40
41 $class = get_class($definition);
42
43 if (! array_key_exists($class, $this->dumpers)) {
44 throw new \RuntimeException(sprintf(
45 'There is no DefinitionDumper capable of dumping this definition of type %s',
46 $class
47 ));
48 }
49
50 $dumper = $this->dumpers[$class];
51
52 return $dumper->dump($definition);
53 }
54
55 private function initialize()
56 {
57 if ($this->dumpers === null) {
58 $this->dumpers = [
59 'Cybot\Dependencies\DI\Definition\ValueDefinition' => new ValueDefinitionDumper(),
60 'Cybot\Dependencies\DI\Definition\FactoryDefinition' => new FactoryDefinitionDumper(),
61 'Cybot\Dependencies\DI\Definition\DecoratorDefinition' => new DecoratorDefinitionDumper(),
62 'Cybot\Dependencies\DI\Definition\AliasDefinition' => new AliasDefinitionDumper(),
63 'Cybot\Dependencies\DI\Definition\ObjectDefinition' => new ObjectDefinitionDumper(),
64 'Cybot\Dependencies\DI\Definition\EnvironmentVariableDefinition' => new EnvironmentVariableDefinitionDumper(),
65 ];
66 }
67 }
68 }
69