Skip to content

Commit 51cfed7

Browse files
committed
Resolver: processing of functions like not() moved to PhpGenerator
1 parent 9d9138e commit 51cfed7

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
@@ -111,6 +111,15 @@ public function formatStatement(Statement $statement): string
111111
case is_string($entity) && str_contains($entity, '?'): // PHP literal
112112
return $this->formatPhp($entity, $arguments);
113113

114+
case $entity === 'not':
115+
return $this->formatPhp('!(?)', $arguments);
116+
117+
case $entity === 'bool':
118+
case $entity === 'int':
119+
case $entity === 'float':
120+
case $entity === 'string':
121+
return $this->formatPhp('?::?(?, ?)', [Helpers::class, 'convertType', $arguments[0], $entity]);
122+
114123
case is_string($entity): // create class
115124
return $arguments
116125
? $this->formatPhp("new $entity(...?:)", [$arguments])

src/DI/Resolver.php

-10
Original file line numberDiff line numberDiff line change
@@ -192,23 +192,13 @@ public function completeStatement(Statement $statement, bool $currentServiceAllo
192192
break;
193193

194194
case $entity === 'not':
195-
if (count($arguments) !== 1) {
196-
throw new ServiceCreationException(sprintf('Function %s() expects 1 parameter, %s given.', $entity, count($arguments)));
197-
}
198-
199-
$entity = ['', '!'];
200-
break;
201-
202195
case $entity === 'bool':
203196
case $entity === 'int':
204197
case $entity === 'float':
205198
case $entity === 'string':
206199
if (count($arguments) !== 1) {
207200
throw new ServiceCreationException(sprintf('Function %s() expects 1 parameter, %s given.', $entity, count($arguments)));
208201
}
209-
210-
$arguments = [$arguments[0], $entity];
211-
$entity = [Helpers::class, 'convertType'];
212202
break;
213203

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

0 commit comments

Comments
 (0)