[DI] cascade preloading only to public parameters/properties

This commit is contained in:
Nicolas Grekas 2019-09-10 19:51:04 +02:00
parent 3536b1371b
commit 0e3ea8f8c9
2 changed files with 3 additions and 3 deletions

View File

@ -67,14 +67,14 @@ class Preloader
$r->getDefaultProperties();
if (\PHP_VERSION_ID >= 70400) {
foreach ($r->getProperties() as $p) {
foreach ($r->getProperties(\ReflectionProperty::IS_PUBLIC) as $p) {
if (($t = $p->getType()) && !$t->isBuiltin()) {
self::doPreload($t->getName(), $preloaded);
}
}
}
foreach ($r->getMethods() as $m) {
foreach ($r->getMethods(\ReflectionMethod::IS_PUBLIC) as $m) {
foreach ($m->getParameters() as $p) {
if ($p->isDefaultValueAvailable() && $p->isDefaultValueConstant()) {
$c = $p->getDefaultValueConstantName();

View File

@ -15,7 +15,7 @@ use Psr\Cache\CacheItemPoolInterface;
use Symfony\Component\ExpressionLanguage\ExpressionLanguage as BaseExpressionLanguage;
if (!class_exists(BaseExpressionLanguage::class)) {
throw new \ReflectionException(BaseExpressionLanguage::class.' not found.');
return;
}
/**