PluginProbe ʕ •ᴥ•ʔ
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode / 4.0.0
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode v4.0.0
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 / Annotation / Injectable.php
cookiebot / addons / inc / Dependencies / DI / Annotation Last commit date
Inject.php 5 years ago Injectable.php 5 years ago
Injectable.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\Annotation;
11
12 use Cybot\Dependencies\DI\Scope;
13 use UnexpectedValueException;
14
15 /**
16 * "Injectable" annotation
17 *
18 * Marks a class as injectable
19 *
20 * @Annotation
21 * @Target("CLASS")
22 *
23 * @author Domenic Muskulus <domenic@muskulus.eu>
24 * @author Matthieu Napoli <matthieu@mnapoli.fr>
25 */
26 final class Injectable
27 {
28 /**
29 * The scope of an class: prototype, singleton
30 * @var string|null
31 */
32 private $scope;
33
34 /**
35 * Should the object be lazy-loaded
36 * @var boolean|null
37 */
38 private $lazy;
39
40 /**
41 * @param array $values
42 */
43 public function __construct(array $values)
44 {
45 if (isset($values['scope'])) {
46 if ($values['scope'] === 'prototype') {
47 $this->scope = Scope::PROTOTYPE;
48 } elseif ($values['scope'] === 'singleton') {
49 $this->scope = Scope::SINGLETON;
50 } else {
51 throw new UnexpectedValueException(sprintf("Value '%s' is not a valid scope", $values['scope']));
52 }
53 }
54 if (isset($values['lazy'])) {
55 $this->lazy = (boolean) $values['lazy'];
56 }
57 }
58
59 /**
60 * @return string|null
61 */
62 public function getScope()
63 {
64 return $this->scope;
65 }
66
67 /**
68 * @return boolean|null
69 */
70 public function isLazy()
71 {
72 return $this->lazy;
73 }
74 }
75