From 9948b09c6d356f363def065a300eafb4ca56f5a3 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Sun, 17 Sep 2017 11:49:41 +0200 Subject: [PATCH] [DI] Turn services and aliases private by default, with BC layer --- UPGRADE-3.4.md | 11 +-- UPGRADE-4.0.md | 15 +++-- .../Tests/LazyProxy/Dumper/PhpDumperTest.php | 2 +- .../FrameworkExtension.php | 6 +- .../Kernel/MicroKernelTrait.php | 1 + .../Functional/app/AutowiringTypes/config.yml | 1 + .../Functional/app/ContainerDebug/config.yml | 1 + .../Functional/app/Serializer/config.yml | 1 + .../Tests/Kernel/ConcreteMicroKernel.php | 2 +- .../DependencyInjection/SecurityExtension.php | 2 +- .../Tests/Functional/app/Acl/config.yml | 1 + .../Functional/app/AutowiringTypes/config.yml | 1 + .../AddConsoleCommandPass.php | 5 +- src/Symfony/Component/Console/composer.json | 4 +- .../Component/DependencyInjection/Alias.php | 4 +- .../DependencyInjection/CHANGELOG.md | 1 + .../Compiler/AutoAliasServicePass.php | 2 +- .../Compiler/CheckDefinitionValidityPass.php | 2 +- .../Compiler/DecoratorServicePass.php | 2 +- .../Compiler/RegisterEnvVarProcessorsPass.php | 1 + .../ReplaceAliasByActualDefinitionPass.php | 2 +- .../Compiler/ResolveChildDefinitionsPass.php | 2 + .../ResolveReferencesToAliasesPass.php | 2 +- .../DependencyInjection/Definition.php | 3 +- .../DependencyInjection/Dumper/XmlDumper.php | 8 +-- .../DependencyInjection/Dumper/YamlDumper.php | 8 +-- .../Loader/XmlFileLoader.php | 7 +- .../Loader/YamlFileLoader.php | 14 ++-- .../ResolveChildDefinitionsPassTest.php | 4 +- .../Tests/Dumper/PhpDumperTest.php | 67 ++++++++++++------- .../Tests/Dumper/XmlDumperTest.php | 10 +-- .../Tests/Dumper/YamlDumperTest.php | 3 +- .../Tests/Fixtures/containers/container10.php | 1 + .../Tests/Fixtures/containers/container11.php | 1 + .../Tests/Fixtures/containers/container12.php | 1 + .../Tests/Fixtures/containers/container13.php | 2 + .../Tests/Fixtures/containers/container15.php | 1 + .../Tests/Fixtures/containers/container16.php | 1 + .../Tests/Fixtures/containers/container17.php | 1 + .../Tests/Fixtures/containers/container19.php | 2 + .../Tests/Fixtures/containers/container21.php | 1 + .../Tests/Fixtures/containers/container24.php | 1 + .../Tests/Fixtures/containers/container33.php | 4 +- .../Tests/Fixtures/containers/container9.php | 24 ++++++- .../containers/container_abstract.php | 1 + .../container_uninitialized_ref.php | 3 + .../Tests/Fixtures/php/services1-1.php | 3 + .../Tests/Fixtures/php/services1.php | 3 + .../Tests/Fixtures/php/services10.php | 3 + .../Tests/Fixtures/php/services12.php | 3 + .../Tests/Fixtures/php/services13.php | 3 + .../Tests/Fixtures/php/services19.php | 3 + .../Tests/Fixtures/php/services24.php | 3 + .../Tests/Fixtures/php/services26.php | 3 + .../Tests/Fixtures/php/services33.php | 3 + .../Tests/Fixtures/php/services8.php | 3 + .../Tests/Fixtures/php/services9_as_files.txt | 1 + .../Tests/Fixtures/php/services9_compiled.php | 1 + .../Fixtures/php/services_array_params.php | 3 + .../Fixtures/php/services_base64_env.php | 3 + .../Fixtures/php/services_legacy_privates.php | 13 +--- .../Tests/Fixtures/php/services_locator.php | 1 + .../Fixtures/php/services_private_frozen.php | 1 + .../php/services_private_in_expression.php | 1 + .../Tests/Fixtures/php/services_rot13_env.php | 3 + .../Fixtures/php/services_subscriber.php | 1 + .../php/services_uninitialized_ref.php | 1 + .../Tests/Fixtures/xml/services21.xml | 2 +- .../Tests/Fixtures/xml/services24.xml | 2 +- .../Tests/Fixtures/xml/services9.xml | 44 ++++++------ .../Tests/Fixtures/xml/services_abstract.xml | 2 +- .../Fixtures/xml/services_without_id.xml | 1 + .../Tests/Fixtures/yaml/services24.yml | 1 + .../Tests/Fixtures/yaml/services26.yml | 1 + .../Tests/Fixtures/yaml/services9.yml | 28 +++++++- .../Tests/Fixtures/yaml/services_inline.yml | 1 + .../yaml/services_legacy_privates.yml | 3 +- .../Tests/Loader/XmlFileLoaderTest.php | 2 +- 78 files changed, 264 insertions(+), 121 deletions(-) diff --git a/UPGRADE-3.4.md b/UPGRADE-3.4.md index 33147c4cc9ad1..cdc062008bf4b 100644 --- a/UPGRADE-3.4.md +++ b/UPGRADE-3.4.md @@ -4,6 +4,9 @@ UPGRADE FROM 3.3 to 3.4 DependencyInjection ------------------- + * Definitions and aliases will be made private by default in 4.0. You should either use service injection + or explicitly define your services as public if you really need to inject the container. + * Relying on service auto-registration while autowiring is deprecated and won't be supported in Symfony 4.0. Explicitly inject your dependencies or create services whose ids are their fully-qualified class name. @@ -154,7 +157,7 @@ FrameworkBundle * The `Symfony\Bundle\FrameworkBundle\Translation\TranslationLoader` class has been deprecated and will be removed in 4.0. Use the `Symfony\Component\Translation\Reader\TranslationReader` class instead. - + * The `translation.loader` service has been deprecated and will be removed in 4.0. Use the `translation.reader` service instead.. @@ -269,9 +272,9 @@ SecurityBundle Translation ----------- - * `Symfony\Component\Translation\Writer\TranslationWriter::writeTranslations` has been deprecated - and will be removed in 4.0, use `Symfony\Component\Translation\Writer\TranslationWriter::write` - instead. + * `Symfony\Component\Translation\Writer\TranslationWriter::writeTranslations` has been deprecated + and will be removed in 4.0, use `Symfony\Component\Translation\Writer\TranslationWriter::write` + instead. * Passing a `Symfony\Component\Translation\MessageSelector` to `Translator` has been deprecated. You should pass a message formatter instead diff --git a/UPGRADE-4.0.md b/UPGRADE-4.0.md index 6c32bad70c90b..fba86ef01c971 100644 --- a/UPGRADE-4.0.md +++ b/UPGRADE-4.0.md @@ -77,6 +77,9 @@ Debug DependencyInjection ------------------- + * Definitions and aliases are now private by default in 4.0. You should either use service injection + or explicitly define your services as public if you really need to inject the container. + * Relying on service auto-registration while autowiring is not supported anymore. Explicitly inject your dependencies or create services whose ids are their fully-qualified class name. @@ -449,14 +452,14 @@ FrameworkBundle * The `Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\TranslatorPass` class has been removed. Use the `Symfony\Component\Translation\DependencyInjection\TranslatorPass` class instead. - + * The `Symfony\Bundle\FrameworkBundle\Translation\TranslationLoader` class has been deprecated and will be removed in 4.0. Use the `Symfony\Component\Translation\Reader\TranslationReader` class instead. * The `translation.loader` service has been removed. Use the `translation.reader` service instead. - + * `AssetsInstallCommand::__construct()` now requires an instance of `Symfony\Component\Filesystem\Filesystem` as first argument. @@ -673,11 +676,11 @@ Translation ----------- * Removed the backup feature from the file dumper classes. - + * The default value of the `$readerServiceId` argument of `TranslatorPass::__construct()` has been changed to `"translation.reader"`. - - * Removed `Symfony\Component\Translation\Writer\TranslationWriter::writeTranslations`, - use `Symfony\Component\Translation\Writer\TranslationWriter::write` instead. + + * Removed `Symfony\Component\Translation\Writer\TranslationWriter::writeTranslations`, + use `Symfony\Component\Translation\Writer\TranslationWriter::write` instead. * Removed support for passing `Symfony\Component\Translation\MessageSelector` as a second argument to the `Translator::__construct()`. You should pass an instance of `Symfony\Component\Translation\Formatter\MessageFormatterInterface` instead. diff --git a/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Dumper/PhpDumperTest.php b/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Dumper/PhpDumperTest.php index 62cc3cd38d38f..7c7464133315a 100644 --- a/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Dumper/PhpDumperTest.php +++ b/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Dumper/PhpDumperTest.php @@ -61,7 +61,7 @@ private function dumpLazyServiceProjectServiceContainer() { $container = new ContainerBuilder(); - $container->register('foo', 'stdClass'); + $container->register('foo', 'stdClass')->setPublic(true); $container->getDefinition('foo')->setLazy(true); $container->compile(); diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index f687b71870338..e0d7258902f4d 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -1012,12 +1012,12 @@ private function registerTemplatingConfiguration(array $config, ContainerBuilder // Use a delegation unless only a single engine was registered if (1 === count($engines)) { - $container->setAlias('templating', (string) reset($engines)); + $container->setAlias('templating', (string) reset($engines))->setPublic(true); } else { foreach ($engines as $engine) { $container->getDefinition('templating.engine.delegating')->addMethodCall('addEngine', array($engine)); } - $container->setAlias('templating', 'templating.engine.delegating'); + $container->setAlias('templating', 'templating.engine.delegating')->setPublic(true); } $container->getDefinition('fragment.renderer.hinclude') @@ -1213,7 +1213,7 @@ private function registerTranslatorConfiguration(array $config, ContainerBuilder $container->getDefinition('translation.writer')->setPrivate(true); // Use the "real" translator instead of the identity default - $container->setAlias('translator', 'translator.default'); + $container->setAlias('translator', 'translator.default')->setPublic(true); $container->setAlias('translator.formatter', new Alias($config['formatter'], false)); $translator = $container->findDefinition('translator.default'); $translator->addMethodCall('setFallbackLocales', array($config['fallbacks'])); diff --git a/src/Symfony/Bundle/FrameworkBundle/Kernel/MicroKernelTrait.php b/src/Symfony/Bundle/FrameworkBundle/Kernel/MicroKernelTrait.php index ef632ca04cc61..a596beafdc4c9 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Kernel/MicroKernelTrait.php +++ b/src/Symfony/Bundle/FrameworkBundle/Kernel/MicroKernelTrait.php @@ -72,6 +72,7 @@ public function registerContainerConfiguration(LoaderInterface $loader) if ($this instanceof EventSubscriberInterface) { $container->register('kernel', static::class) ->setSynthetic(true) + ->setPublic(true) ->addTag('kernel.event_subscriber') ; } diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/AutowiringTypes/config.yml b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/AutowiringTypes/config.yml index a44078cc499b3..1b47c1100a159 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/AutowiringTypes/config.yml +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/AutowiringTypes/config.yml @@ -2,6 +2,7 @@ imports: - { resource: ../config/default.yml } services: + _defaults: { public: true } test.autowiring_types.autowired_services: class: Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\AutowiringTypes\AutowiredServices autowire: true diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/ContainerDebug/config.yml b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/ContainerDebug/config.yml index f4a5425808440..d00d6f235ec67 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/ContainerDebug/config.yml +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/ContainerDebug/config.yml @@ -2,6 +2,7 @@ imports: - { resource: ../config/default.yml } services: + _defaults: { public: true } public: class: Symfony\Bundle\FrameworkBundle\Tests\Fixtures\DeclaredClass private_alias: diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/Serializer/config.yml b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/Serializer/config.yml index fe3de69299946..e4090041bb196 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/Serializer/config.yml +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/Serializer/config.yml @@ -2,6 +2,7 @@ imports: - { resource: ../config/default.yml } services: + _defaults: { public: true } test.property_info: '@property_info' framework: diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Kernel/ConcreteMicroKernel.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Kernel/ConcreteMicroKernel.php index 5337050d0e37c..f476945f3da0c 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/Kernel/ConcreteMicroKernel.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Kernel/ConcreteMicroKernel.php @@ -82,7 +82,7 @@ protected function configureContainer(ContainerBuilder $c, LoaderInterface $load )); $c->setParameter('halloween', 'Have a great day!'); - $c->register('halloween', 'stdClass'); + $c->register('halloween', 'stdClass')->setPublic(true); } /** diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php index 95e382b7b4226..21fc056e382f2 100644 --- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php +++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php @@ -185,7 +185,7 @@ private function configureDbalAclProvider(array $config, ContainerBuilder $conta $container->getAlias('security.acl.provider')->setPrivate(true); if (null !== $config['connection']) { - $container->setAlias('security.acl.dbal.connection', sprintf('doctrine.dbal.%s_connection', $config['connection'])); + $container->setAlias('security.acl.dbal.connection', sprintf('doctrine.dbal.%s_connection', $config['connection']))->setPrivate(true); } $container diff --git a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/Acl/config.yml b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/Acl/config.yml index 49191e01d85c2..45f8e24d4f81e 100644 --- a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/Acl/config.yml +++ b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/Acl/config.yml @@ -2,6 +2,7 @@ imports: - { resource: ./../config/framework.yml } services: + _defaults: { public: true } test.security.acl.provider: '@security.acl.provider' doctrine: diff --git a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AutowiringTypes/config.yml b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AutowiringTypes/config.yml index bb3ef5a2dc70f..2045118e1b9f1 100644 --- a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AutowiringTypes/config.yml +++ b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AutowiringTypes/config.yml @@ -2,6 +2,7 @@ imports: - { resource: ../config/framework.yml } services: + _defaults: { public: true } test.autowiring_types.autowired_services: class: Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\AutowiringBundle\AutowiredServices autowire: true diff --git a/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php b/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php index dcc023cb222da..39d53ef8e37d3 100644 --- a/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php +++ b/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php @@ -65,8 +65,8 @@ public function process(ContainerBuilder $container) if (isset($serviceIds[$commandId]) || $container->hasAlias($commandId)) { $commandId = $commandId.'_'.$id; } - if (!$definition->isPublic()) { - $container->setAlias($commandId, $id); + if (!$definition->isPublic() || $definition->isPrivate()) { + $container->setAlias($commandId, $id)->setPublic(true); $id = $commandId; } $serviceIds[$commandId] = $id; @@ -97,6 +97,7 @@ public function process(ContainerBuilder $container) $container ->register($this->commandLoaderServiceId, ContainerCommandLoader::class) + ->setPublic(true) ->setArguments(array(ServiceLocatorTagPass::register($container, $lazyCommandRefs), $lazyCommandMap)); $container->setParameter('console.command.ids', $serviceIds); diff --git a/src/Symfony/Component/Console/composer.json b/src/Symfony/Component/Console/composer.json index 95164005e7ba5..e9d10e0c7f887 100644 --- a/src/Symfony/Component/Console/composer.json +++ b/src/Symfony/Component/Console/composer.json @@ -23,7 +23,7 @@ "require-dev": { "symfony/config": "~3.3|~4.0", "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", "symfony/lock": "~3.4|~4.0", "symfony/process": "~3.3|~4.0", "psr/log": "~1.0" @@ -35,7 +35,7 @@ "psr/log": "For using the console logger" }, "conflict": { - "symfony/dependency-injection": "<3.3", + "symfony/dependency-injection": "<3.4", "symfony/process": "<3.3" }, "autoload": { diff --git a/src/Symfony/Component/DependencyInjection/Alias.php b/src/Symfony/Component/DependencyInjection/Alias.php index ee43bd399f92b..8773b8389110f 100644 --- a/src/Symfony/Component/DependencyInjection/Alias.php +++ b/src/Symfony/Component/DependencyInjection/Alias.php @@ -15,7 +15,7 @@ class Alias { private $id; private $public; - private $private = false; + private $private; /** * @param string $id Alias identifier @@ -25,6 +25,7 @@ public function __construct($id, $public = true) { $this->id = (string) $id; $this->public = $public; + $this->private = 2 > func_num_args(); } /** @@ -47,6 +48,7 @@ public function isPublic() public function setPublic($boolean) { $this->public = (bool) $boolean; + $this->private = false; return $this; } diff --git a/src/Symfony/Component/DependencyInjection/CHANGELOG.md b/src/Symfony/Component/DependencyInjection/CHANGELOG.md index e0cd5dbf6053b..bc8fd3051870c 100644 --- a/src/Symfony/Component/DependencyInjection/CHANGELOG.md +++ b/src/Symfony/Component/DependencyInjection/CHANGELOG.md @@ -4,6 +4,7 @@ CHANGELOG 3.4.0 ----- + * deprecated "public-by-default" definitions and aliases, the new default will be "private" in 4.0 * added `EnvVarProcessorInterface` and corresponding "container.env_var_processor" tag for processing env vars * added support for ignore-on-uninitialized references * deprecated service auto-registration while autowiring diff --git a/src/Symfony/Component/DependencyInjection/Compiler/AutoAliasServicePass.php b/src/Symfony/Component/DependencyInjection/Compiler/AutoAliasServicePass.php index c1f05e03ec02c..03420683a205a 100644 --- a/src/Symfony/Component/DependencyInjection/Compiler/AutoAliasServicePass.php +++ b/src/Symfony/Component/DependencyInjection/Compiler/AutoAliasServicePass.php @@ -33,7 +33,7 @@ public function process(ContainerBuilder $container) $aliasId = $container->getParameterBag()->resolveValue($tag['format']); if ($container->hasDefinition($aliasId) || $container->hasAlias($aliasId)) { - $container->setAlias($serviceId, new Alias($aliasId)); + $container->setAlias($serviceId, new Alias($aliasId, true)); } } } diff --git a/src/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php b/src/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php index 815dbcae4915d..9a7ee4d3520bb 100644 --- a/src/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php +++ b/src/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php @@ -39,7 +39,7 @@ public function process(ContainerBuilder $container) { foreach ($container->getDefinitions() as $id => $definition) { // synthetic service is public - if ($definition->isSynthetic() && (!$definition->isPublic() || $definition->isPrivate())) { + if ($definition->isSynthetic() && !($definition->isPublic() || $definition->isPrivate())) { throw new RuntimeException(sprintf('A synthetic service ("%s") must be public.', $id)); } diff --git a/src/Symfony/Component/DependencyInjection/Compiler/DecoratorServicePass.php b/src/Symfony/Component/DependencyInjection/Compiler/DecoratorServicePass.php index 0e9a68e7f0026..99234812d65ca 100644 --- a/src/Symfony/Component/DependencyInjection/Compiler/DecoratorServicePass.php +++ b/src/Symfony/Component/DependencyInjection/Compiler/DecoratorServicePass.php @@ -67,7 +67,7 @@ public function process(ContainerBuilder $container) $container->setDefinition($renamedId, $decoratedDefinition); } - $container->setAlias($inner, $id)->setPublic($public && !$private)->setPrivate($private); + $container->setAlias($inner, $id)->setPublic($public)->setPrivate($private); } } } diff --git a/src/Symfony/Component/DependencyInjection/Compiler/RegisterEnvVarProcessorsPass.php b/src/Symfony/Component/DependencyInjection/Compiler/RegisterEnvVarProcessorsPass.php index 247f5b69ad40f..68f2f9a41c134 100644 --- a/src/Symfony/Component/DependencyInjection/Compiler/RegisterEnvVarProcessorsPass.php +++ b/src/Symfony/Component/DependencyInjection/Compiler/RegisterEnvVarProcessorsPass.php @@ -52,6 +52,7 @@ public function process(ContainerBuilder $container) $bag->setProvidedTypes($types); } $container->register('container.env_var_processors_locator', ServiceLocator::class) + ->setPublic(true) ->setArguments(array($processors)) ; } diff --git a/src/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php b/src/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php index 124bd08b6f92c..bc575e1fc536b 100644 --- a/src/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php +++ b/src/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php @@ -45,7 +45,7 @@ public function process(ContainerBuilder $container) } // Check if target needs to be replaces if (isset($replacements[$targetId])) { - $container->setAlias($definitionId, $replacements[$targetId]); + $container->setAlias($definitionId, $replacements[$targetId])->setPublic($target->isPublic())->setPrivate($target->isPrivate()); } // No need to process the same target twice if (isset($seenAliasTargets[$targetId])) { diff --git a/src/Symfony/Component/DependencyInjection/Compiler/ResolveChildDefinitionsPass.php b/src/Symfony/Component/DependencyInjection/Compiler/ResolveChildDefinitionsPass.php index 7625377793769..460fb55e472be 100644 --- a/src/Symfony/Component/DependencyInjection/Compiler/ResolveChildDefinitionsPass.php +++ b/src/Symfony/Component/DependencyInjection/Compiler/ResolveChildDefinitionsPass.php @@ -36,12 +36,14 @@ public function process(ContainerBuilder $container) foreach ($container->getDefinitions() as $definition) { if ($definition->isPrivate()) { $definition->setPublic(false); + $definition->setPrivate(true); } } foreach ($container->getAliases() as $alias) { if ($alias->isPrivate()) { $alias->setPublic(false); + $alias->setPrivate(true); } } } diff --git a/src/Symfony/Component/DependencyInjection/Compiler/ResolveReferencesToAliasesPass.php b/src/Symfony/Component/DependencyInjection/Compiler/ResolveReferencesToAliasesPass.php index 7ab97044bfe7b..a46c74fbb65f1 100644 --- a/src/Symfony/Component/DependencyInjection/Compiler/ResolveReferencesToAliasesPass.php +++ b/src/Symfony/Component/DependencyInjection/Compiler/ResolveReferencesToAliasesPass.php @@ -32,7 +32,7 @@ public function process(ContainerBuilder $container) foreach ($container->getAliases() as $id => $alias) { $aliasId = (string) $alias; if ($aliasId !== $defId = $this->getDefinitionId($aliasId, $container)) { - $container->setAlias($id, $defId)->setPublic($alias->isPublic() && !$alias->isPrivate())->setPrivate($alias->isPrivate()); + $container->setAlias($id, $defId)->setPublic($alias->isPublic())->setPrivate($alias->isPrivate()); } } } diff --git a/src/Symfony/Component/DependencyInjection/Definition.php b/src/Symfony/Component/DependencyInjection/Definition.php index 7a660eef1d6e0..34d6f46cacca4 100644 --- a/src/Symfony/Component/DependencyInjection/Definition.php +++ b/src/Symfony/Component/DependencyInjection/Definition.php @@ -35,7 +35,7 @@ class Definition private $configurator; private $tags = array(); private $public = true; - private $private = false; + private $private = true; private $synthetic = false; private $abstract = false; private $lazy = false; @@ -603,6 +603,7 @@ public function setPublic($boolean) $this->changes['public'] = true; $this->public = (bool) $boolean; + $this->private = false; return $this; } diff --git a/src/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php b/src/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php index 0631ddaf3ef9f..fb307a76e8ca7 100644 --- a/src/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php +++ b/src/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php @@ -122,8 +122,8 @@ private function addService($definition, $id, \DOMElement $parent) if (!$definition->isShared()) { $service->setAttribute('shared', 'false'); } - if (!$definition->isPublic()) { - $service->setAttribute('public', 'false'); + if (!$definition->isPrivate()) { + $service->setAttribute('public', $definition->isPublic() ? 'true' : 'false'); } if ($definition->isSynthetic()) { $service->setAttribute('synthetic', 'true'); @@ -242,8 +242,8 @@ private function addServiceAlias($alias, Alias $id, \DOMElement $parent) $service = $this->document->createElement('service'); $service->setAttribute('id', $alias); $service->setAttribute('alias', $id); - if (!$id->isPublic()) { - $service->setAttribute('public', 'false'); + if (!$id->isPrivate()) { + $service->setAttribute('public', $id->isPublic() ? 'true' : 'false'); } $parent->appendChild($service); } diff --git a/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php b/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php index d8f07edc08e5c..916a2317b3893 100644 --- a/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php +++ b/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php @@ -74,8 +74,8 @@ private function addService($id, $definition) $code .= sprintf(" class: %s\n", $this->dumper->dump($class)); } - if (!$definition->isPublic()) { - $code .= " public: false\n"; + if (!$definition->isPrivate()) { + $code .= sprintf(" public: %s\n", $definition->isPublic() ? 'true' : 'false'); } $tagsCode = ''; @@ -178,11 +178,11 @@ private function addService($id, $definition) */ private function addServiceAlias($alias, $id) { - if ($id->isPublic()) { + if ($id->isPrivate()) { return sprintf(" %s: '@%s'\n", $alias, $id); } - return sprintf(" %s:\n alias: %s\n public: false\n", $alias, $id); + return sprintf(" %s:\n alias: %s\n public: %s\n", $alias, $id, $id->isPublic() ? 'true' : 'false'); } /** diff --git a/src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php b/src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php index 4a16d75e36c5c..6bebf2133c57b 100644 --- a/src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php +++ b/src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php @@ -203,13 +203,12 @@ private function parseDefinition(\DOMElement $service, $file, array $defaults) if ($alias = $service->getAttribute('alias')) { $this->validateAlias($service, $file); - $public = true; + $this->container->setAlias((string) $service->getAttribute('id'), $alias = new Alias($alias)); if ($publicAttr = $service->getAttribute('public')) { - $public = XmlUtils::phpize($publicAttr); + $alias->setPublic(XmlUtils::phpize($publicAttr)); } elseif (isset($defaults['public'])) { - $public = $defaults['public']; + $alias->setPublic($defaults['public']); } - $this->container->setAlias((string) $service->getAttribute('id'), new Alias($alias, $public)); return; } diff --git a/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php b/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php index b57ead2c89015..be0c75b2cac73 100644 --- a/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php +++ b/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php @@ -336,8 +336,10 @@ private function parseDefinition($id, $service, $file, array $defaults) @trigger_error(sprintf('Service names that start with an underscore are deprecated since Symfony 3.3 and will be reserved in 4.0. Rename the "%s" service or define it in XML instead.', $id), E_USER_DEPRECATED); } if (is_string($service) && 0 === strpos($service, '@')) { - $public = isset($defaults['public']) ? $defaults['public'] : true; - $this->container->setAlias($id, new Alias(substr($service, 1), $public)); + $this->container->setAlias($id, $alias = new Alias(substr($service, 1))); + if (isset($defaults['public'])) { + $alias->setPublic($defaults['public']); + } return; } @@ -357,8 +359,12 @@ private function parseDefinition($id, $service, $file, array $defaults) $this->checkDefinition($id, $service, $file); if (isset($service['alias'])) { - $public = array_key_exists('public', $service) ? (bool) $service['public'] : (isset($defaults['public']) ? $defaults['public'] : true); - $this->container->setAlias($id, new Alias($service['alias'], $public)); + $this->container->setAlias($id, $alias = new Alias($service['alias'])); + if (array_key_exists('public', $service)) { + $alias->setPublic($service['public']); + } elseif (isset($defaults['public'])) { + $alias->setPublic($defaults['public']); + } foreach ($service as $key => $value) { if (!in_array($key, array('alias', 'public'))) { diff --git a/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveChildDefinitionsPassTest.php b/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveChildDefinitionsPassTest.php index cb9a879a05d48..c8135b965e80d 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveChildDefinitionsPassTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveChildDefinitionsPassTest.php @@ -402,13 +402,13 @@ public function testPrivateHasHigherPrecedenceThanPublic() $container = new ContainerBuilder(); $container->register('foo', 'stdClass') - ->setPrivate(true) ->setPublic(true) + ->setPrivate(true) ; $container->setAlias('bar', 'foo') - ->setPrivate(false) ->setPublic(false) + ->setPrivate(false) ; $this->process($container); diff --git a/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php b/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php index 4ea8290cfc725..f4c25cd9d2bb1 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php @@ -18,6 +18,7 @@ use Symfony\Component\DependencyInjection\Argument\IteratorArgument; use Symfony\Component\DependencyInjection\Argument\RewindableGenerator; use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; +use Symfony\Component\DependencyInjection\ChildDefinition; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\ContainerInterface as SymfonyContainerInterface; use Symfony\Component\DependencyInjection\Dumper\PhpDumper; @@ -71,6 +72,7 @@ public function testDumpOptimizationString() 'optimize concatenation from the start' => '%empty_value%start', 'optimize concatenation at the end' => 'end%empty_value%', )); + $definition->setPublic(true); $container = new ContainerBuilder(); $container->setResourceTracking(false); @@ -89,6 +91,7 @@ public function testDumpRelativeDir() $definition->setClass('stdClass'); $definition->addArgument('%foo%'); $definition->addArgument(array('%foo%' => '%buz%/')); + $definition->setPublic(true); $container = new ContainerBuilder(); $container->setDefinition('test', $definition); @@ -151,7 +154,7 @@ public function testAddService() $this->assertStringEqualsFile(self::$fixturesPath.'/php/services9_compiled.php', str_replace(str_replace('\\', '\\\\', self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR), '%path%', $dumper->dump()), '->dump() dumps services'); $container = new ContainerBuilder(); - $container->register('foo', 'FooClass')->addArgument(new \stdClass()); + $container->register('foo', 'FooClass')->addArgument(new \stdClass())->setPublic(true); $container->compile(); $dumper = new PhpDumper($container); try { @@ -188,8 +191,8 @@ public function testAddServiceIdWithUnsupportedCharacters() { $class = 'Symfony_DI_PhpDumper_Test_Unsupported_Characters'; $container = new ContainerBuilder(); - $container->register('bar$', 'FooClass'); - $container->register('bar$!', 'FooClass'); + $container->register('bar$', 'FooClass')->setPublic(true); + $container->register('bar$!', 'FooClass')->setPublic(true); $container->compile(); $dumper = new PhpDumper($container); eval('?>'.$dumper->dump(array('class' => $class))); @@ -202,8 +205,8 @@ public function testConflictingServiceIds() { $class = 'Symfony_DI_PhpDumper_Test_Conflicting_Service_Ids'; $container = new ContainerBuilder(); - $container->register('foo_bar', 'FooClass'); - $container->register('foobar', 'FooClass'); + $container->register('foo_bar', 'FooClass')->setPublic(true); + $container->register('foobar', 'FooClass')->setPublic(true); $container->compile(); $dumper = new PhpDumper($container); eval('?>'.$dumper->dump(array('class' => $class))); @@ -216,8 +219,8 @@ public function testConflictingMethodsWithParent() { $class = 'Symfony_DI_PhpDumper_Test_Conflicting_Method_With_Parent'; $container = new ContainerBuilder(); - $container->register('bar', 'FooClass'); - $container->register('foo_bar', 'FooClass'); + $container->register('bar', 'FooClass')->setPublic(true); + $container->register('foo_bar', 'FooClass')->setPublic(true); $container->compile(); $dumper = new PhpDumper($container); eval('?>'.$dumper->dump(array( @@ -238,6 +241,7 @@ public function testInvalidFactories($factory) { $container = new ContainerBuilder(); $def = new Definition('stdClass'); + $def->setPublic(true); $def->setFactory($factory); $container->setDefinition('bar', $def); $container->compile(); @@ -319,9 +323,9 @@ public function testOverrideServiceWhenUsingADumpedContainerAndServiceIsUsedFrom public function testCircularReference() { $container = new ContainerBuilder(); - $container->register('foo', 'stdClass')->addArgument(new Reference('bar')); + $container->register('foo', 'stdClass')->addArgument(new Reference('bar'))->setPublic(true); $container->register('bar', 'stdClass')->setPublic(false)->addMethodCall('setA', array(new Reference('baz'))); - $container->register('baz', 'stdClass')->addMethodCall('setA', array(new Reference('foo'))); + $container->register('baz', 'stdClass')->addMethodCall('setA', array(new Reference('foo')))->setPublic(true); $container->compile(); $dumper = new PhpDumper($container); @@ -394,7 +398,7 @@ public function testCustomEnvParameters() $container = new ContainerBuilder(); $container->setParameter('env(foo)', str_rot13('world')); $container->setParameter('hello', '%env(rot13:foo)%'); - $container->register(Rot13EnvVarProcessor::class)->addTag('container.env_var_processor'); + $container->register(Rot13EnvVarProcessor::class)->addTag('container.env_var_processor')->setPublic(true); $container->compile(); $dumper = new PhpDumper($container); @@ -459,7 +463,7 @@ public function testInlinedDefinitionReferencingServiceContainer() { $container = new ContainerBuilder(); $container->register('foo', 'stdClass')->addMethodCall('add', array(new Reference('service_container')))->setPublic(false); - $container->register('bar', 'stdClass')->addArgument(new Reference('foo')); + $container->register('bar', 'stdClass')->addArgument(new Reference('foo'))->setPublic(true); $container->compile(); $dumper = new PhpDumper($container); @@ -471,8 +475,9 @@ public function testInitializePropertiesBeforeMethodCalls() require_once self::$fixturesPath.'/includes/classes.php'; $container = new ContainerBuilder(); - $container->register('foo', 'stdClass'); + $container->register('foo', 'stdClass')->setPublic(true); $container->register('bar', 'MethodCallClass') + ->setPublic(true) ->setProperty('simple', 'bar') ->setProperty('complex', new Reference('foo')) ->addMethodCall('callMe'); @@ -488,8 +493,8 @@ public function testInitializePropertiesBeforeMethodCalls() public function testCircularReferenceAllowanceForLazyServices() { $container = new ContainerBuilder(); - $container->register('foo', 'stdClass')->addArgument(new Reference('bar')); - $container->register('bar', 'stdClass')->setLazy(true)->addArgument(new Reference('foo')); + $container->register('foo', 'stdClass')->addArgument(new Reference('bar'))->setPublic(true); + $container->register('bar', 'stdClass')->setLazy(true)->addArgument(new Reference('foo'))->setPublic(true); $container->compile(); $dumper = new PhpDumper($container); @@ -514,14 +519,16 @@ public function testCircularReferenceAllowanceForInlinedDefinitionsForLazyServic $eventManagerDefinition = new Definition('stdClass'); - $connectionDefinition = $container->register('connection', 'stdClass'); + $connectionDefinition = $container->register('connection', 'stdClass')->setPublic(true); $connectionDefinition->addArgument($eventManagerDefinition); $container->register('entity_manager', 'stdClass') + ->setPublic(true) ->setLazy(true) ->addArgument(new Reference('connection')); $lazyServiceDefinition = $container->register('lazy_service', 'stdClass'); + $lazyServiceDefinition->setPublic(true); $lazyServiceDefinition->setLazy(true); $lazyServiceDefinition->addArgument(new Reference('entity_manager')); @@ -542,9 +549,10 @@ public function testLazyArgumentProvideGenerator() require_once self::$fixturesPath.'/includes/classes.php'; $container = new ContainerBuilder(); - $container->register('lazy_referenced', 'stdClass'); + $container->register('lazy_referenced', 'stdClass')->setPublic(true); $container ->register('lazy_context', 'LazyContext') + ->setPublic(true) ->setArguments(array( new IteratorArgument(array('k1' => new Reference('lazy_referenced'), 'k2' => new Reference('service_container'))), new IteratorArgument(array()), @@ -592,8 +600,8 @@ public function testNormalizedId() public function testDumpContainerBuilderWithFrozenConstructorIncludingPrivateServices() { $container = new ContainerBuilder(); - $container->register('foo_service', 'stdClass')->setArguments(array(new Reference('baz_service'))); - $container->register('bar_service', 'stdClass')->setArguments(array(new Reference('baz_service'))); + $container->register('foo_service', 'stdClass')->setArguments(array(new Reference('baz_service')))->setPublic(true); + $container->register('bar_service', 'stdClass')->setArguments(array(new Reference('baz_service')))->setPublic(true); $container->register('baz_service', 'stdClass')->setPublic(false); $container->compile(); @@ -606,6 +614,7 @@ public function testServiceLocator() { $container = new ContainerBuilder(); $container->register('foo_service', ServiceLocator::class) + ->setPublic(true) ->addArgument(array( 'bar' => new ServiceClosureArgument(new Reference('bar_service')), 'baz' => new ServiceClosureArgument(new TypedReference('baz_service', 'stdClass')), @@ -614,40 +623,43 @@ public function testServiceLocator() ; // no method calls - $container->register('translator.loader_1', 'stdClass'); + $container->register('translator.loader_1', 'stdClass')->setPublic(true); $container->register('translator.loader_1_locator', ServiceLocator::class) ->setPublic(false) ->addArgument(array( 'translator.loader_1' => new ServiceClosureArgument(new Reference('translator.loader_1')), )); $container->register('translator_1', StubbedTranslator::class) + ->setPublic(true) ->addArgument(new Reference('translator.loader_1_locator')); // one method calls - $container->register('translator.loader_2', 'stdClass'); + $container->register('translator.loader_2', 'stdClass')->setPublic(true); $container->register('translator.loader_2_locator', ServiceLocator::class) ->setPublic(false) ->addArgument(array( 'translator.loader_2' => new ServiceClosureArgument(new Reference('translator.loader_2')), )); $container->register('translator_2', StubbedTranslator::class) + ->setPublic(true) ->addArgument(new Reference('translator.loader_2_locator')) ->addMethodCall('addResource', array('db', new Reference('translator.loader_2'), 'nl')); // two method calls - $container->register('translator.loader_3', 'stdClass'); + $container->register('translator.loader_3', 'stdClass')->setPublic(true); $container->register('translator.loader_3_locator', ServiceLocator::class) ->setPublic(false) ->addArgument(array( 'translator.loader_3' => new ServiceClosureArgument(new Reference('translator.loader_3')), )); $container->register('translator_3', StubbedTranslator::class) + ->setPublic(true) ->addArgument(new Reference('translator.loader_3_locator')) ->addMethodCall('addResource', array('db', new Reference('translator.loader_3'), 'nl')) ->addMethodCall('addResource', array('db', new Reference('translator.loader_3'), 'en')); $nil->setValues(array(null)); - $container->register('bar_service', 'stdClass')->setArguments(array(new Reference('baz_service'))); + $container->register('bar_service', 'stdClass')->setArguments(array(new Reference('baz_service')))->setPublic(true); $container->register('baz_service', 'stdClass')->setPublic(false); $container->compile(); @@ -660,6 +672,7 @@ public function testServiceSubscriber() { $container = new ContainerBuilder(); $container->register('foo_service', TestServiceSubscriber::class) + ->setPublic(true) ->setAutowired(true) ->addArgument(new Reference(ContainerInterface::class)) ->addTag('container.service_subscriber', array( @@ -667,7 +680,7 @@ public function testServiceSubscriber() 'id' => TestServiceSubscriber::class, )) ; - $container->register(TestServiceSubscriber::class, TestServiceSubscriber::class); + $container->register(TestServiceSubscriber::class, TestServiceSubscriber::class)->setPublic(true); $container->register(CustomDefinition::class, CustomDefinition::class) ->setPublic(false); @@ -686,6 +699,7 @@ public function testPrivateWithIgnoreOnInvalidReference() $container->register('not_invalid', 'BazClass') ->setPublic(false); $container->register('bar', 'BarClass') + ->setPublic(true) ->addMethodCall('setBaz', array(new Reference('not_invalid', SymfonyContainerInterface::IGNORE_ON_INVALID_REFERENCE))); $container->compile(); @@ -702,6 +716,7 @@ public function testArrayParameters() $container->setParameter('array_1', array(123)); $container->setParameter('array_2', array(__DIR__)); $container->register('bar', 'BarClass') + ->setPublic(true) ->addMethodCall('setBaz', array('%array_1%', '%array_2%', '%%array_1%%', array(123))); $container->compile(); @@ -718,6 +733,7 @@ public function testExpressionReferencingPrivateService() $container->register('private_foo', 'stdClass') ->setPublic(false); $container->register('public_foo', 'stdClass') + ->setPublic(true) ->addArgument(new Expression('service("private_foo")')); $container->compile(); @@ -767,7 +783,7 @@ public function testUninitializedReference() public function testDumpHandlesLiteralClassWithRootNamespace() { $container = new ContainerBuilder(); - $container->register('foo', '\\stdClass'); + $container->register('foo', '\\stdClass')->setPublic(true); $container->compile(); $dumper = new PhpDumper($container); @@ -795,6 +811,9 @@ public function testLegacyPrivateServices() $loader = new YamlFileLoader($container, new FileLocator(self::$fixturesPath.'/yaml')); $loader->load('services_legacy_privates.yml'); + $container->setDefinition('private_child', new ChildDefinition('foo')); + $container->setDefinition('private_parent', new ChildDefinition('private')); + $container->getDefinition('private')->setPrivate(true); $container->getDefinition('private_not_inlined')->setPrivate(true); $container->getDefinition('private_not_removed')->setPrivate(true); diff --git a/src/Symfony/Component/DependencyInjection/Tests/Dumper/XmlDumperTest.php b/src/Symfony/Component/DependencyInjection/Tests/Dumper/XmlDumperTest.php index 8a34a2b19a297..7904ed0c9e6db 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Dumper/XmlDumperTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Dumper/XmlDumperTest.php @@ -57,7 +57,7 @@ public function testAddService() $this->assertEquals(str_replace('%path%', self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR, file_get_contents(self::$fixturesPath.'/xml/services9.xml')), $dumper->dump(), '->dump() dumps services'); $dumper = new XmlDumper($container = new ContainerBuilder()); - $container->register('foo', 'FooClass')->addArgument(new \stdClass()); + $container->register('foo', 'FooClass')->addArgument(new \stdClass())->setPublic(true); try { $dumper->dump(); $this->fail('->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources'); @@ -75,7 +75,7 @@ public function testDumpAnonymousServices() - + @@ -99,7 +99,7 @@ public function testDumpEntities() - + foo<>&bar @@ -128,7 +128,7 @@ public function provideDecoratedServicesData() - + @@ -138,7 +138,7 @@ public function provideDecoratedServicesData() - + diff --git a/src/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php b/src/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php index 85ce181461419..2a34692c5862d 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php @@ -52,7 +52,7 @@ public function testAddService() $this->assertEqualYamlStructure(str_replace('%path%', self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR, file_get_contents(self::$fixturesPath.'/yaml/services9.yml')), $dumper->dump(), '->dump() dumps services'); $dumper = new YamlDumper($container = new ContainerBuilder()); - $container->register('foo', 'FooClass')->addArgument(new \stdClass()); + $container->register('foo', 'FooClass')->addArgument(new \stdClass())->setPublic(true); try { $dumper->dump(); $this->fail('->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources'); @@ -85,6 +85,7 @@ public function testInlineServices() { $container = new ContainerBuilder(); $container->register('foo', 'Class1') + ->setPublic(true) ->addArgument((new Definition('Class2')) ->addArgument(new Definition('Class2')) ) diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container10.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container10.php index a16ca9fff87d8..4f5492ad5a843 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container10.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container10.php @@ -9,6 +9,7 @@ $container-> register('foo', 'FooClass')-> addArgument(new Reference('bar')) + ->setPublic(true) ; return $container; diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container11.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container11.php index 3e6cafca24f90..150cd7921ee1b 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container11.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container11.php @@ -7,6 +7,7 @@ $container-> register('foo', 'FooClass')-> addArgument(new Definition('BarClass', array(new Definition('BazClass')))) + ->setPublic(true) ; return $container; diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container12.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container12.php index 73c5b4ef176e2..bc527eb79e78d 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container12.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container12.php @@ -7,6 +7,7 @@ register('foo', 'FooClass\\Foo')-> addArgument('foo<>&bar')-> addTag('foo"bar\\bar', array('foo' => 'foo"barřž€')) + ->setPublic(true) ; return $container; diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container13.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container13.php index cc716c78f04f5..df598d4ea5fae 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container13.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container13.php @@ -7,9 +7,11 @@ $container-> register('foo', 'FooClass')-> addArgument(new Reference('bar')) + ->setPublic(true) ; $container-> register('bar', 'BarClass') + ->setPublic(true) ; $container->compile(); diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container15.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container15.php index bb41ea3c4f175..7949247558f34 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container15.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container15.php @@ -6,6 +6,7 @@ $container ->register('foo', 'FooClass\\Foo') ->setDecoratedService('bar', 'bar.woozy') + ->setPublic(true) ; return $container; diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container16.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container16.php index 67b4d353db4d2..88619ec50e267 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container16.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container16.php @@ -6,6 +6,7 @@ $container ->register('foo', 'FooClass\\Foo') ->setDecoratedService('bar') + ->setPublic(true) ; return $container; diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container17.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container17.php index d902ec2a39306..7f1db6762981e 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container17.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container17.php @@ -5,6 +5,7 @@ $container = new ContainerBuilder(); $container ->register('foo', '%foo.class%') + ->setPublic(true) ; return $container; diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container19.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container19.php index 64b8f066dca10..823a77f534f52 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container19.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container19.php @@ -10,6 +10,7 @@ $container ->register('service_from_anonymous_factory', 'Bar\FooClass') ->setFactory(array(new Definition('Bar\FooClass'), 'getInstance')) + ->setPublic(true) ; $anonymousServiceWithFactory = new Definition('Bar\FooClass'); @@ -17,6 +18,7 @@ $container ->register('service_with_method_call_and_factory', 'Bar\FooClass') ->addMethodCall('setBar', array($anonymousServiceWithFactory)) + ->setPublic(true) ; return $container; diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container21.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container21.php index d0467386140a9..298c9266a9e2b 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container21.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container21.php @@ -15,6 +15,7 @@ ->register('foo', 'Foo') ->setFactory(array($fooFactory, 'createFoo')) ->setConfigurator(array($bar, 'configureFoo')) + ->setPublic(true) ; return $container; diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container24.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container24.php index cba10b526b2a8..b9d0b91f10eb8 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container24.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container24.php @@ -7,6 +7,7 @@ $container ->register('foo', 'Foo') ->setAutowired(true) + ->setPublic(true) ; return $container; diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container33.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container33.php index ec68f929d449e..673abe204cd9e 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container33.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container33.php @@ -6,7 +6,7 @@ $container = new ContainerBuilder(); -$container->register(\Foo\Foo::class); -$container->register(\Bar\Foo::class); +$container->register(\Foo\Foo::class)->setPublic(true); +$container->register(\Bar\Foo::class)->setPublic(true); return $container; diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php index 2906004828a59..91a9af43d9a1f 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php @@ -21,21 +21,25 @@ ->addMethodCall('setBar', array(new Reference('bar'))) ->addMethodCall('initialize') ->setConfigurator('sc_configure') + ->setPublic(true) ; $container ->register('foo.baz', '%baz_class%') ->setFactory(array('%baz_class%', 'getInstance')) ->setConfigurator(array('%baz_class%', 'configureStatic1')) + ->setPublic(true) ; $container ->register('bar', 'Bar\FooClass') ->setArguments(array('foo', new Reference('foo.baz'), new Parameter('foo_bar'))) ->setConfigurator(array(new Reference('foo.baz'), 'configure')) + ->setPublic(true) ; $container ->register('foo_bar', '%foo_class%') ->addArgument(new Reference('deprecated_service')) ->setShared(false) + ->setPublic(true) ; $container->getParameterBag()->clear(); $container->getParameterBag()->add(array( @@ -43,8 +47,8 @@ 'foo_class' => 'Bar\FooClass', 'foo' => 'bar', )); -$container->setAlias('alias_for_foo', 'foo'); -$container->setAlias('alias_for_alias', 'alias_for_foo'); +$container->setAlias('alias_for_foo', 'foo')->setPublic(true); +$container->setAlias('alias_for_alias', 'alias_for_foo')->setPublic(true); $container ->register('method_call1', 'Bar\FooClass') ->setFile(realpath(__DIR__.'/../includes/foo.php')) @@ -53,10 +57,12 @@ ->addMethodCall('setBar', array(new Reference('foo3', ContainerInterface::IGNORE_ON_INVALID_REFERENCE))) ->addMethodCall('setBar', array(new Reference('foobaz', ContainerInterface::IGNORE_ON_INVALID_REFERENCE))) ->addMethodCall('setBar', array(new Expression('service("foo").foo() ~ (container.hasParameter("foo") ? parameter("foo") : "default")'))) + ->setPublic(true) ; $container ->register('foo_with_inline', 'Foo') ->addMethodCall('setBar', array(new Reference('inlined'))) + ->setPublic(true) ; $container ->register('inlined', 'Bar') @@ -67,10 +73,12 @@ $container ->register('baz', 'Baz') ->addMethodCall('setFoo', array(new Reference('foo_with_inline'))) + ->setPublic(true) ; $container ->register('request', 'Request') ->setSynthetic(true) + ->setPublic(true) ; $container ->register('configurator_service', 'ConfClass') @@ -80,6 +88,7 @@ $container ->register('configured_service', 'stdClass') ->setConfigurator(array(new Reference('configurator_service'), 'configureStdClass')) + ->setPublic(true) ; $container ->register('configurator_service_simple', 'ConfClass') @@ -89,21 +98,26 @@ $container ->register('configured_service_simple', 'stdClass') ->setConfigurator(array(new Reference('configurator_service_simple'), 'configureStdClass')) + ->setPublic(true) ; $container ->register('decorated', 'stdClass') + ->setPublic(true) ; $container ->register('decorator_service', 'stdClass') ->setDecoratedService('decorated') + ->setPublic(true) ; $container ->register('decorator_service_with_name', 'stdClass') ->setDecoratedService('decorated', 'decorated.pif-pouf') + ->setPublic(true) ; $container ->register('deprecated_service', 'stdClass') ->setDeprecated(true) + ->setPublic(true) ; $container ->register('new_factory', 'FactoryClass') @@ -113,15 +127,18 @@ $container ->register('factory_service', 'Bar') ->setFactory(array(new Reference('foo.baz'), 'getInstance')) + ->setPublic(true) ; $container ->register('new_factory_service', 'FooBarBaz') ->setProperty('foo', 'bar') ->setFactory(array(new Reference('new_factory'), 'getInstance')) + ->setPublic(true) ; $container ->register('service_from_static_method', 'Bar\FooClass') ->setFactory(array('Bar\FooClass', 'getInstance')) + ->setPublic(true) ; $container ->register('factory_simple', 'SimpleFactoryClass') @@ -132,14 +149,17 @@ $container ->register('factory_service_simple', 'Bar') ->setFactory(array(new Reference('factory_simple'), 'getInstance')) + ->setPublic(true) ; $container ->register('lazy_context', 'LazyContext') ->setArguments(array(new IteratorArgument(array('k1' => new Reference('foo.baz'), 'k2' => new Reference('service_container'))), new IteratorArgument(array()))) + ->setPublic(true) ; $container ->register('lazy_context_ignore_invalid_ref', 'LazyContext') ->setArguments(array(new IteratorArgument(array(new Reference('foo.baz'), new Reference('invalid', ContainerInterface::IGNORE_ON_INVALID_REFERENCE))), new IteratorArgument(array()))) + ->setPublic(true) ; return $container; diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container_abstract.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container_abstract.php index 9622a273d3806..308e22524132f 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container_abstract.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container_abstract.php @@ -7,6 +7,7 @@ $container ->register('foo', 'Foo') ->setAbstract(true) + ->setPublic(true) ; return $container; diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container_uninitialized_ref.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container_uninitialized_ref.php index 9ecf7c909f04a..7aeefb4d5227f 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container_uninitialized_ref.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container_uninitialized_ref.php @@ -9,6 +9,7 @@ $container ->register('foo1', 'stdClass') + ->setPublic(true) ; $container @@ -24,6 +25,7 @@ $container ->register('baz', 'stdClass') ->setProperty('foo3', new Reference('foo3')) + ->setPublic(true) ; $container @@ -41,6 +43,7 @@ 'foo2' => new Reference('foo2', $container::IGNORE_ON_UNINITIALIZED_REFERENCE), 'foo3' => new Reference('foo3', $container::IGNORE_ON_UNINITIALIZED_REFERENCE), ))) + ->setPublic(true) ; return $container; diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1-1.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1-1.php index 44631328ce606..d87e61e14aa19 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1-1.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1-1.php @@ -29,6 +29,9 @@ class Container extends AbstractContainer public function __construct() { $this->services = array(); + $this->privates = array( + 'service_container' => true, + ); $this->aliases = array(); } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1.php index 9ad021ece802b..69fc82e056966 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1.php @@ -27,6 +27,9 @@ class ProjectServiceContainer extends Container public function __construct() { $this->services = array(); + $this->privates = array( + 'service_container' => true, + ); $this->aliases = array(); } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php index d8478d677f4ff..26c73706168d3 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php @@ -32,6 +32,9 @@ public function __construct() $this->methodMap = array( 'test' => 'getTestService', ); + $this->privates = array( + 'service_container' => true, + ); $this->aliases = array(); } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services12.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services12.php index 976c720768752..65891c77b994d 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services12.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services12.php @@ -36,6 +36,9 @@ public function __construct() $this->methodMap = array( 'test' => 'getTestService', ); + $this->privates = array( + 'service_container' => true, + ); $this->aliases = array(); } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services13.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services13.php index 42b9e78963662..1525115f5b74a 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services13.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services13.php @@ -30,6 +30,9 @@ public function __construct() $this->methodMap = array( 'bar' => 'getBarService', ); + $this->privates = array( + 'service_container' => true, + ); $this->aliases = array(); } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services19.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services19.php index 3af42c502c0b4..44822ac27d8b0 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services19.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services19.php @@ -31,6 +31,9 @@ public function __construct() 'service_from_anonymous_factory' => 'getServiceFromAnonymousFactoryService', 'service_with_method_call_and_factory' => 'getServiceWithMethodCallAndFactoryService', ); + $this->privates = array( + 'service_container' => true, + ); $this->aliases = array(); } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services24.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services24.php index 116972d25b8fc..8fbfc408caa4c 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services24.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services24.php @@ -30,6 +30,9 @@ public function __construct() $this->methodMap = array( 'foo' => 'getFooService', ); + $this->privates = array( + 'service_container' => true, + ); $this->aliases = array(); } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services26.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services26.php index 3a38cff1a1539..d3349f02b3007 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services26.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services26.php @@ -36,6 +36,9 @@ public function __construct() $this->methodMap = array( 'test' => 'getTestService', ); + $this->privates = array( + 'service_container' => true, + ); $this->aliases = array(); } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services33.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services33.php index 20eda55d99e0f..327d9e1c4136c 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services33.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services33.php @@ -35,6 +35,9 @@ public function __construct() 'Bar\\Foo' => 'getFooService', 'Foo\\Foo' => 'getFoo2Service', ); + $this->privates = array( + 'service_container' => true, + ); $this->aliases = array(); } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php index 1689a9658668a..f46835ef9dfc1 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php @@ -29,6 +29,9 @@ public function __construct() $this->parameters = $this->getDefaultParameters(); $this->services = array(); + $this->privates = array( + 'service_container' => true, + ); $this->aliases = array(); } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_as_files.txt b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_as_files.txt index 059f0912815ca..0af1392afd0f6 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_as_files.txt +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_as_files.txt @@ -295,6 +295,7 @@ class Container%s extends Container ); $this->privates = array( 'factory_simple' => true, + 'service_container' => true, ); $this->aliases = array( 'alias_for_alias' => 'foo', diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php index 103bb0de34d88..3478d54ec52be 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php @@ -52,6 +52,7 @@ public function __construct() ); $this->privates = array( 'factory_simple' => true, + 'service_container' => true, ); $this->aliases = array( 'alias_for_alias' => 'foo', diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_array_params.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_array_params.php index d848941013388..872b5179532b6 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_array_params.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_array_params.php @@ -36,6 +36,9 @@ public function __construct() $this->methodMap = array( 'bar' => 'getBarService', ); + $this->privates = array( + 'service_container' => true, + ); $this->aliases = array(); } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_base64_env.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_base64_env.php index 4f4c7e79df38b..8ebd8f0580c58 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_base64_env.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_base64_env.php @@ -29,6 +29,9 @@ public function __construct() $this->parameters = $this->getDefaultParameters(); $this->services = array(); + $this->privates = array( + 'service_container' => true, + ); $this->aliases = array(); } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_legacy_privates.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_legacy_privates.php index 70e781bdfd9e9..aa154e2c435aa 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_legacy_privates.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_legacy_privates.php @@ -38,7 +38,6 @@ public function __construct() 'private_alias_decorator' => 'getPrivateAliasDecoratorService', 'private_child' => 'getPrivateChildService', 'private_decorator' => 'getPrivateDecoratorService', - 'private_decorator.inner' => 'getPrivateDecorator_InnerService', 'private_not_inlined' => 'getPrivateNotInlinedService', 'private_not_removed' => 'getPrivateNotRemovedService', 'private_parent' => 'getPrivateParentService', @@ -50,10 +49,10 @@ public function __construct() 'private' => true, 'private_alias' => true, 'private_child' => true, - 'private_decorator.inner' => true, 'private_not_inlined' => true, 'private_not_removed' => true, 'private_parent' => true, + 'service_container' => true, ); $this->aliases = array( 'alias_to_private' => 'private', @@ -158,16 +157,6 @@ protected function getPrivateChildService() return $this->services['private_child'] = new \stdClass(); } - /** - * Gets the private 'private_decorator.inner' shared service. - * - * @return \stdClass - */ - protected function getPrivateDecorator_InnerService() - { - return $this->services['private_decorator.inner'] = new \stdClass(); - } - /** * Gets the private 'private_not_inlined' shared service. * diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_locator.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_locator.php index 751ad8e4fa454..fb2bbbcde8a5a 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_locator.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_locator.php @@ -40,6 +40,7 @@ public function __construct() ); $this->privates = array( 'baz_service' => true, + 'service_container' => true, ); $this->aliases = array(); diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_private_frozen.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_private_frozen.php index a6717fd6abf8f..6c24edc01801c 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_private_frozen.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_private_frozen.php @@ -34,6 +34,7 @@ public function __construct() ); $this->privates = array( 'baz_service' => true, + 'service_container' => true, ); $this->aliases = array(); diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_private_in_expression.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_private_in_expression.php index e5129d4f36566..121951a26f998 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_private_in_expression.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_private_in_expression.php @@ -33,6 +33,7 @@ public function __construct() ); $this->privates = array( 'private_foo' => true, + 'service_container' => true, ); $this->aliases = array(); diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_rot13_env.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_rot13_env.php index 2e08cdcb42f92..22496e69a4dce 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_rot13_env.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_rot13_env.php @@ -36,6 +36,9 @@ public function __construct() 'Symfony\\Component\\DependencyInjection\\Tests\\Dumper\\Rot13EnvVarProcessor' => 'getRot13EnvVarProcessorService', 'container.env_var_processors_locator' => 'getContainer_EnvVarProcessorsLocatorService', ); + $this->privates = array( + 'service_container' => true, + ); $this->aliases = array(); } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_subscriber.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_subscriber.php index 3d7cc80336831..21fcf03c1efe3 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_subscriber.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_subscriber.php @@ -38,6 +38,7 @@ public function __construct() ); $this->privates = array( 'Symfony\\Component\\DependencyInjection\\Tests\\Fixtures\\CustomDefinition' => true, + 'service_container' => true, ); $this->aliases = array(); diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_uninitialized_ref.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_uninitialized_ref.php index 4c26d58d70c28..5a2990e303840 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_uninitialized_ref.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_uninitialized_ref.php @@ -35,6 +35,7 @@ public function __construct() ); $this->privates = array( 'foo3' => true, + 'service_container' => true, ); $this->aliases = array(); diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services21.xml b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services21.xml index 2ed88fee5a0d4..34fd11ef097c2 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services21.xml +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services21.xml @@ -2,7 +2,7 @@ - + diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services24.xml b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services24.xml index c4e32cb634e0c..7183435842f13 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services24.xml +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services24.xml @@ -2,7 +2,7 @@ - + diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml index c7884fb11d6ab..59fa6b102ab42 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml @@ -7,7 +7,7 @@ - + foo @@ -31,20 +31,20 @@ - + - + foo %foo_bar% - + - + %path%foo.php @@ -62,7 +62,7 @@ service("foo").foo() ~ (container.hasParameter("foo") ? parameter("foo") : "default") - + @@ -73,60 +73,60 @@ - + - + - + bar - + - - - - + + + + The "%service_id%" service is deprecated. You should stop using it, as it will soon be removed. bar - + - + bar - + foo The "%service_id%" service is deprecated. You should stop using it, as it will soon be removed. - + - + - + @@ -135,7 +135,7 @@ - - + + diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services_abstract.xml b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services_abstract.xml index 334e8b045f237..bf9e07e5b083c 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services_abstract.xml +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services_abstract.xml @@ -2,7 +2,7 @@ - + diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services_without_id.xml b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services_without_id.xml index afabf3d891d39..bc0f719bd5330 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services_without_id.xml +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services_without_id.xml @@ -1,6 +1,7 @@ + diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services24.yml b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services24.yml index afed157017f4d..5faf830410afc 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services24.yml +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services24.yml @@ -5,6 +5,7 @@ services: synthetic: true foo: class: Foo + public: true autowire: true Psr\Container\ContainerInterface: alias: service_container diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services26.yml b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services26.yml index d573e810dbe23..aa44b4d77a941 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services26.yml +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services26.yml @@ -9,6 +9,7 @@ parameters: services: test: + public: true class: '%env(FOO)%' arguments: - '%env(Bar)%' diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml index 01b67d78ac553..1744611a1a7e0 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml @@ -20,18 +20,22 @@ services: factory: [Bar\FooClass, getInstance] configurator: sc_configure + public: true foo.baz: class: '%baz_class%' factory: ['%baz_class%', getInstance] configurator: ['%baz_class%', configureStatic1] + public: true bar: class: Bar\FooClass arguments: [foo, '@foo.baz', '%foo_bar%'] configurator: ['@foo.baz', configure] + public: true foo_bar: class: '%foo_class%' shared: false arguments: ['@deprecated_service'] + public: true method_call1: class: Bar\FooClass file: '%path%foo.php' @@ -41,11 +45,13 @@ services: - [setBar, ['@?foo3']] - [setBar, ['@?foobaz']] - [setBar, ['@=service("foo").foo() ~ (container.hasParameter("foo") ? parameter("foo") : "default")']] + public: true foo_with_inline: class: Foo calls: - [setBar, ['@inlined']] + public: true inlined: class: Bar @@ -58,10 +64,12 @@ services: class: Baz calls: - [setFoo, ['@foo_with_inline']] + public: true request: class: Request synthetic: true + public: true configurator_service: class: ConfClass public: false @@ -71,6 +79,7 @@ services: configured_service: class: stdClass configurator: ['@configurator_service', configureStdClass] + public: true configurator_service_simple: class: ConfClass public: false @@ -78,18 +87,23 @@ services: configured_service_simple: class: stdClass configurator: ['@configurator_service_simple', configureStdClass] + public: true decorated: class: stdClass + public: true decorator_service: class: stdClass decorates: decorated + public: true decorator_service_with_name: class: stdClass decorates: decorated decoration_inner_name: decorated.pif-pouf + public: true deprecated_service: class: stdClass deprecated: The "%service_id%" service is deprecated. You should stop using it, as it will soon be removed. + public: true new_factory: class: FactoryClass public: false @@ -97,13 +111,16 @@ services: factory_service: class: Bar factory: ['@foo.baz', getInstance] + public: true new_factory_service: class: FooBarBaz properties: { foo: bar } factory: ['@new_factory', getInstance] + public: true service_from_static_method: class: Bar\FooClass factory: [Bar\FooClass, getInstance] + public: true factory_simple: class: SimpleFactoryClass deprecated: The "%service_id%" service is deprecated. You should stop using it, as it will soon be removed. @@ -112,14 +129,21 @@ services: factory_service_simple: class: Bar factory: ['@factory_simple', getInstance] + public: true lazy_context: class: LazyContext arguments: [!iterator {'k1': '@foo.baz', 'k2': '@service_container'}, !iterator []] + public: true lazy_context_ignore_invalid_ref: class: LazyContext arguments: [!iterator ['@foo.baz', '@?invalid'], !iterator []] - alias_for_foo: '@foo' - alias_for_alias: '@foo' + public: true + alias_for_foo: + alias: 'foo' + public: true + alias_for_alias: + alias: 'foo' + public: true Psr\Container\ContainerInterface: alias: service_container public: false diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services_inline.yml b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services_inline.yml index 14adedf32dde0..15d78b50a7725 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services_inline.yml +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services_inline.yml @@ -5,6 +5,7 @@ services: synthetic: true foo: class: Class1 + public: true arguments: [!service { class: Class2, arguments: [!service { class: Class2 }] }] Psr\Container\ContainerInterface: alias: service_container diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services_legacy_privates.yml b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services_legacy_privates.yml index ac54a57dff013..0fd20446e7964 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services_legacy_privates.yml +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services_legacy_privates.yml @@ -1,4 +1,5 @@ services: + _defaults: {public: true} foo: {class: stdClass, public: false} @@ -23,6 +24,4 @@ services: private_not_inlined: {class: stdClass, public: false} private_not_removed: {class: stdClass, public: false} - private_child: {parent: foo} - private_parent: {parent: private} public_child: {parent: private, public: true} diff --git a/src/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php b/src/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php index 8f6467c05eb76..a30567a2546e6 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php @@ -234,7 +234,7 @@ public function testLoadAnonymousServices() /** * @group legacy - * @expectedDeprecation Top-level anonymous services are deprecated since Symfony 3.4, the "id" attribute will be required in version 4.0 in %sservices_without_id.xml at line 4. + * @expectedDeprecation Top-level anonymous services are deprecated since Symfony 3.4, the "id" attribute will be required in version 4.0 in %sservices_without_id.xml at line 5. */ public function testLoadAnonymousServicesWithoutId() { pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy