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.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 / Source / DefinitionFile.php
cookiebot / addons / inc / Dependencies / DI / Definition / Source Last commit date
AnnotationReader.php 5 years ago Autowiring.php 5 years ago CachedDefinitionSource.php 5 years ago DefinitionArray.php 5 years ago DefinitionFile.php 5 years ago DefinitionSource.php 5 years ago MutableDefinitionSource.php 5 years ago SourceChain.php 5 years ago
DefinitionFile.php
75 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\Source;
11
12 use Cybot\Dependencies\DI\Definition\Definition;
13 use Cybot\Dependencies\DI\Definition\Exception\DefinitionException;
14
15 /**
16 * Reads DI definitions from a file returning a PHP array.
17 *
18 * @author Matthieu Napoli <matthieu@mnapoli.fr>
19 */
20 class DefinitionFile extends DefinitionArray
21 {
22 /**
23 * @var bool
24 */
25 private $initialized = false;
26
27 /**
28 * File containing definitions, or null if the definitions are given as a PHP array.
29 * @var string|null
30 */
31 private $file;
32
33 /**
34 * @param string $file File in which the definitions are returned as an array.
35 */
36 public function __construct($file)
37 {
38 // Lazy-loading to improve performances
39 $this->file = $file;
40
41 parent::__construct([]);
42 }
43
44 /**
45 * {@inheritdoc}
46 */
47 public function getDefinition($name)
48 {
49 $this->initialize();
50
51 return parent::getDefinition($name);
52 }
53
54 /**
55 * Lazy-loading of the definitions.
56 * @throws DefinitionException
57 */
58 private function initialize()
59 {
60 if ($this->initialized === true) {
61 return;
62 }
63
64 $definitions = require $this->file;
65
66 if (! is_array($definitions)) {
67 throw new DefinitionException("File {$this->file} should return an array of definitions");
68 }
69
70 $this->addDefinitions($definitions);
71
72 $this->initialized = true;
73 }
74 }
75