Skip to content

Commit d4a5b9e

Browse files
committed
Merge branch 'feature/php-di-7-compiler-optimize-string-definitions' into mod7-merged
# Conflicts: # src/CompiledContainer.php
2 parents 35e761e + 06a8229 commit d4a5b9e

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

src/CompiledContainer.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use Invoker\ParameterResolver\DefaultValueResolver;
1717
use Invoker\ParameterResolver\NumericArrayResolver;
1818
use Invoker\ParameterResolver\ResolverChain;
19+
use Psr\Container\NotFoundExceptionInterface;
1920

2021
/**
2122
* Compiled version of the dependency injection container.
@@ -132,4 +133,21 @@ protected function resolveServiceLocator(string $requestingName, string $reposit
132133

133134
return $repository->create($requestingName, $services);
134135
}
136+
137+
/**
138+
* Resolve a placeholder in string definition
139+
* - wrap possible NotFound exception to conform to the one from StringDefinition::resolveExpression.
140+
*/
141+
protected function resolveStringPlaceholder(string $placeholder, string $entryName) : mixed
142+
{
143+
try {
144+
return $this->delegateContainer->get($placeholder);
145+
} catch (NotFoundExceptionInterface $e) {
146+
throw new DependencyException(sprintf(
147+
"Error while parsing string expression for entry '%s': %s",
148+
$entryName,
149+
$e->getMessage()
150+
), 0, $e);
151+
}
152+
}
135153
}

0 commit comments

Comments
 (0)