New in Symfony 4.1: Hidden services

Contributed by
Nicolas Grekas
in #26921.

In Symfony 3.4 we made all Symfony services private by default. This is
generally better and makes applications more robust (as explained in the
previous post) but it also has some drawbacks.

The debug:container command for example hides the private services by
default, so it’s no longer useful to list the services available in your
application. That’s why in Symfony 4.1 we’ve changed the debug:container
command to show the private services by default and we’ve also deprecated the
--show-private option.

Independently from being public or private, sometimes it’s useful to hide some
services from the debug:container listing because they are not intended for
being used by the developers. In those cases, you can add a dot character
(.) at the beginning of the service ID to turn it into a "hidden service".

Hidden services behave like the rest of services, except for the fact that they
are not included by default in the output of debug:container, so you must
add the new --show-hidden option to show them:

$ ./bin/console debug:container --show-hidden

We are already using this feature to hide some internal Symfony services
created by the Lock component.

Be trained by Symfony experts
2018-05-16 Paris
2018-05-22 Clichy
2018-05-22 Clichy

[risorsa: Symfony Blog ]