New in Symfony 4.1: Hidden services
May 16, 2018 • Published by Javier Eguiluz
Warning: This post is about an unsupported Symfony version. Some of this information may be out of date. Read the most recent Symfony Docs.
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:
1
$ ./bin/console debug:container --show-hidden
We are already using this feature to hide some internal Symfony services created by the Lock component.
Help the Symfony project!
As with any Open-Source project, contributing code or documentation is the most common way to help, but we also have a wide range of sponsoring opportunities.
Comments are closed.
To ensure that comments stay relevant, they are closed for old posts.
> Is it only when the name starts with a dot?
Yes, it's explained in this blog post
> And if yes, why are these services hidden? :)
I will quote this blog post:
>> because they are not intended for being used by the developers
To me, the most important news in this blog post is not that you can hide your identifiers. It's mostly that we did remove some noise from the two output. \o/
After wtf effect has passed the idea of hidden services defined by dot seems a good improvement. Thanks