Skip to content

Commit 1b2d371

Browse files
committed
Resolver: processing of functions like not() moved to PhpGenerator
1 parent 7f04701 commit 1b2d371

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

src/DI/PhpGenerator.php

+9
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,15 @@ public function formatStatement(Statement $statement): string
119119
case is_string($entity) && Strings::contains($entity, '?'): // PHP literal
120120
return $this->formatPhp($entity, $arguments);
121121

122+
case $entity === 'not':
123+
return $this->formatPhp('!(?)', $arguments);
124+
125+
case $entity === 'bool':
126+
case $entity === 'int':
127+
case $entity === 'float':
128+
case $entity === 'string':
129+
return $this->formatPhp('?::?(?, ?)', [Helpers::class, 'convertType', $arguments[0], $entity]);
130+
122131
case is_string($entity): // create class
123132
return $arguments
124133
? $this->formatPhp("new $entity(...?:)", [$arguments])

src/DI/Resolver.php

-10
Original file line numberDiff line numberDiff line change
@@ -183,23 +183,13 @@ public function completeStatement(Statement $statement, bool $currentServiceAllo
183183
break;
184184

185185
case $entity === 'not':
186-
if (count($arguments) !== 1) {
187-
throw new ServiceCreationException(sprintf('Function %s() expects 1 parameter, %s given.', $entity, count($arguments)));
188-
}
189-
190-
$entity = ['', '!'];
191-
break;
192-
193186
case $entity === 'bool':
194187
case $entity === 'int':
195188
case $entity === 'float':
196189
case $entity === 'string':
197190
if (count($arguments) !== 1) {
198191
throw new ServiceCreationException(sprintf('Function %s() expects 1 parameter, %s given.', $entity, count($arguments)));
199192
}
200-
201-
$arguments = [$arguments[0], $entity];
202-
$entity = [Helpers::class, 'convertType'];
203193
break;
204194

205195
case is_string($entity): // create class

0 commit comments

Comments
 (0)