Civi\Core\Container - Fix warning about Symfony 3=>4 and boot services #15704
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
"Boot services" are initialized during bootstrap (before the container starts) -- and then passed into the container via
$container->set()
.Symfony 3.4 changes the default handling of
set()
- it now emits warnings unless the services were previously flagged as public.https://symfony.com/blog/new-in-symfony-3-4-services-are-private-by-default
Before
After
The warnings don't appear.
Comments
The
Definition
class includes two methods,setPublic()
andsetPrivate()
, which appear to do the same thing (but as opposites).setPublic()
exists in Symfony 2.8+, butsetPrivate()
was added in Symfony 3.x, so we usesetPublic()
for broader compatibility.