1 | <?php declare(strict_types = 1); |
||
24 | class DefinitionBuilder extends AbstractDefinition |
||
25 | { |
||
26 | /** @var ClassDefinition[] Definition collection */ |
||
27 | protected $definitionCollection = []; |
||
28 | /** @var ParameterBuilder */ |
||
29 | protected $parameterBuilder; |
||
30 | |||
31 | /** |
||
32 | * DefinitionBuilder constructor. |
||
33 | * |
||
34 | * @param ParameterBuilder $parameterBuilder |
||
35 | * @param AbstractDefinition|null $parentDefinition |
||
36 | */ |
||
37 | 18 | public function __construct(ParameterBuilder $parameterBuilder, AbstractDefinition $parentDefinition = null) |
|
44 | |||
45 | /** |
||
46 | * Define parameters |
||
47 | * |
||
48 | * @param string $name |
||
49 | * @param ReferenceInterface $reference |
||
50 | * @return ParameterBuilderInterface |
||
51 | * @throws ParameterAlreadyExistsException |
||
52 | */ |
||
53 | 3 | public function defineParameter(string $name, ReferenceInterface $reference): ParameterBuilderInterface |
|
57 | |||
58 | /** |
||
59 | * Add new class definition |
||
60 | * |
||
61 | * @param $className |
||
62 | * @param string $serviceName |
||
63 | * @return ClassBuilderInterface |
||
64 | * @throws ClassDefinitionAlreadyExistsException |
||
65 | */ |
||
66 | 16 | public function addDefinition($className, string $serviceName = null): ClassBuilderInterface |
|
85 | |||
86 | /** |
||
87 | * When definition for class name is exists in collection |
||
88 | * |
||
89 | * @param $className |
||
90 | * @return bool |
||
91 | */ |
||
92 | 16 | public function hasDefinition($className): bool |
|
96 | |||
97 | /** |
||
98 | * @return ClassDefinition[] |
||
99 | */ |
||
100 | 10 | public function getDefinitionCollection(): array |
|
104 | |||
105 | /** |
||
106 | * @return ReferenceInterface[] |
||
107 | */ |
||
108 | 4 | public function getParameterCollection(): array |
|
112 | } |
||
113 |
In PHP, under loose comparison (like
==
, or!=
, orswitch
conditions), values of different types might be equal.For
string
values, the empty string''
is a special case, in particular the following results might be unexpected: