PluginProbe ʕ •ᴥ•ʔ
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode / 3.11.3
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode v3.11.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 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 / Dumper / DefinitionDumperDispatcher.php
cookiebot / addons / inc / Dependencies / DI / Definition / Dumper Last commit date
AliasDefinitionDumper.php 5 years ago ArrayDefinitionDumper.php 5 years ago DecoratorDefinitionDumper.php 5 years ago DefinitionDumper.php 5 years ago DefinitionDumperDispatcher.php 5 years ago EnvironmentVariableDefinitionDumper.php 5 years ago FactoryDefinitionDumper.php 5 years ago ObjectDefinitionDumper.php 5 years ago StringDefinitionDumper.php 5 years ago ValueDefinitionDumper.php 5 years ago
DefinitionDumperDispatcher.php
69 lines
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 <matthieu@mnapoli.fr>
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