Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 65131e2

Browse files
committed
added checks for public services on compiler passes that use service id and not references
1 parent 470dc3e commit 65131e2

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddConstraintValidatorsPass.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,17 @@ public function process(ContainerBuilder $container)
2828
$validators[$attributes[0]['alias']] = $id;
2929
}
3030

31-
$validators[$container->getDefinition($id)->getClass()] = $id;
31+
$definition = $container->getDefinition($id);
32+
33+
if (!$definition->isPublic()) {
34+
throw new InvalidArgumentException(sprintf('The service "%s" must be public as it can be lazy-loaded.', $id));
35+
}
36+
37+
if ($definition->isAbstract()) {
38+
throw new InvalidArgumentException(sprintf('The service "%s" must not be abstract as it can be lazy-loaded.', $id));
39+
}
40+
41+
$validators[$definition->getClass()] = $id;
3242
}
3343

3444
$container->getDefinition('validator.validator_factory')->replaceArgument(1, $validators);

src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public function build(ContainerBuilder $container)
7575
// but as late as possible to get resolved parameters
7676
$container->addCompilerPass(new RegisterListenersPass(), PassConfig::TYPE_BEFORE_REMOVING);
7777
$container->addCompilerPass(new TemplatingPass());
78-
$container->addCompilerPass(new AddConstraintValidatorsPass());
78+
$container->addCompilerPass(new AddConstraintValidatorsPass(), PassConfig::TYPE_BEFORE_REMOVING);
7979
$container->addCompilerPass(new AddValidatorInitializersPass());
8080
$container->addCompilerPass(new AddConsoleCommandPass());
8181
$container->addCompilerPass(new FormPass());

0 commit comments

Comments
 (0)