forked from https://github.com/symfony/symfony
3cde49c084
This PR was merged into the 5.3-dev branch.
Discussion
----------
[FrameworkBundle] Use more explicite wording for debug:container command
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | yes
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
I spent too much time debugging something stupid (in my app) and I do think Symfony could do better to help.
In the application, there was:
```yaml
services:
_defaults:
autoconfigure: true
get_set_method_normalizer:
class: Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer
tags:
- { name: serializer.normalizer }
```
And I had to edit the priority. To ensure everything was right, I ran:
```
Symfony Container Services Tagged with "serializer.normalizer" Tag
==================================================================
------------------------------------------------------------ ---------- ---------------------------------------------------------------------------
Service ID priority Class name
------------------------------------------------------------ ---------- ---------------------------------------------------------------------------
Symfony\Component\Serializer\Normalizer\DateTimeNormalizer 1 Symfony\Component\Serializer\Normalizer\DateTimeNormalizer
App\Serializer\Normalizer\JsonApiItemNormalizer App\Serializer\Normalizer\JsonApiItemNormalizer
get_set_method_normalizer Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer
" -900
serializer.normalizer.constraint_violation_list -915 Symfony\Component\Serializer\Normalizer\ConstraintViolationListNormalizer
serializer.normalizer.datetimezone -915 Symfony\Component\Serializer\Normalizer\DateTimeZoneNormalizer
serializer.normalizer.dateinterval -915 Symfony\Component\Serializer\Normalizer\DateIntervalNormalizer
serializer.normalizer.data_uri -920 Symfony\Component\Serializer\Normalizer\DataUriNormalizer
serializer.normalizer.datetime -910 Symfony\Component\Serializer\Normalizer\DateTimeNormalizer
serializer.normalizer.json_serializable -900 Symfony\Component\Serializer\Normalizer\JsonSerializableNormalizer
serializer.normalizer.problem -890 Symfony\Component\Serializer\Normalizer\ProblemNormalizer
serializer.normalizer.object -1000 Symfony\Component\Serializer\Normalizer\ObjectNormalizer
serializer.denormalizer.array -990 Symfony\Component\Serializer\Normalizer\ArrayDenormalizer
fos_rest.serializer.form_error_normalizer -10 FOS\RestBundle\Serializer\Normalizer\FormErrorNormalizer
fos_rest.serializer.exception_normalizer.symfony -10 FOS\RestBundle\Serializer\Normalizer\ExceptionNormalizer
fos_rest.serializer.flatten_exception_normalizer -10 FOS\RestBundle\Serializer\Normalizer\FlattenExceptionNormalizer
------------------------------------------------------------ ---------- ---------------------------------------------------------------------------
```
Please, focus on the `get_set_method_normalizer` line and the `" -900` line.
To me, it's understandable. I first thought it's a bug in Symfony. But it is not.
The bug is in my application. since the service have `autoconfigure` + an explicit tag it has finally 2 tags.
And the command was not really helpful
* the usage of `"` instead of a clear message is highly misleading.
* the fact Symfony registers the tag (`autoconfigure`) without a `priority` (nothing is displayed in the console) does not help either. BTW, we might registry tag with an explicit priority (0) instead of nothing. WDYT? I could do another PR for that.
So with this patch, I hope it'll be clearer:
```
root /app php bin/console debug:container --tag=serializer.normalizer
Symfony Container Services Tagged with "serializer.normalizer" Tag
==================================================================
------------------------------------------------------------ ---------- ---------------------------------------------------------------------------
Service ID priority Class name
------------------------------------------------------------ ---------- ---------------------------------------------------------------------------
Symfony\Component\Serializer\Normalizer\DateTimeNormalizer 1 Symfony\Component\Serializer\Normalizer\DateTimeNormalizer
App\Serializer\Normalizer\JsonApiItemNormalizer App\Serializer\Normalizer\JsonApiItemNormalizer
get_set_method_normalizer Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer
(same service as previous, another tag) -900
serializer.normalizer.constraint_violation_list -915 Symfony\Component\Serializer\Normalizer\ConstraintViolationListNormalizer
serializer.normalizer.datetimezone -915 Symfony\Component\Serializer\Normalizer\DateTimeZoneNormalizer
serializer.normalizer.dateinterval -915 Symfony\Component\Serializer\Normalizer\DateIntervalNormalizer
serializer.normalizer.data_uri -920 Symfony\Component\Serializer\Normalizer\DataUriNormalizer
serializer.normalizer.datetime -910 Symfony\Component\Serializer\Normalizer\DateTimeNormalizer
serializer.normalizer.json_serializable -900 Symfony\Component\Serializer\Normalizer\JsonSerializableNormalizer
serializer.normalizer.problem -890 Symfony\Component\Serializer\Normalizer\ProblemNormalizer
serializer.normalizer.object -1000 Symfony\Component\Serializer\Normalizer\ObjectNormalizer
serializer.denormalizer.array -990 Symfony\Component\Serializer\Normalizer\ArrayDenormalizer
fos_rest.serializer.form_error_normalizer -10 FOS\RestBundle\Serializer\Normalizer\FormErrorNormalizer
fos_rest.serializer.exception_normalizer.symfony -10 FOS\RestBundle\Serializer\Normalizer\ExceptionNormalizer
fos_rest.serializer.flatten_exception_normalizer -10 FOS\RestBundle\Serializer\Normalizer\FlattenExceptionNormalizer
------
```
Commits
-------
|
||
---|---|---|
.github | ||
src/Symfony | ||
.appveyor.yml | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.php_cs.dist | ||
.travis.yml | ||
CHANGELOG-5.0.md | ||
CHANGELOG-5.1.md | ||
CHANGELOG-5.2.md | ||
CHANGELOG-5.3.md | ||
CODE_OF_CONDUCT.md | ||
composer.json | ||
CONTRIBUTING.md | ||
CONTRIBUTORS.md | ||
LICENSE | ||
link | ||
phpunit | ||
phpunit.xml.dist | ||
psalm.xml | ||
README.md | ||
UPGRADE-5.0.md | ||
UPGRADE-5.1.md | ||
UPGRADE-5.2.md | ||
UPGRADE-5.3.md | ||
UPGRADE-6.0.md |
Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Symfony is used by thousands of web applications (including BlaBlaCar.com and Spotify.com) and most of the popular PHP projects (including Drupal and Magento).
Installation
- Install Symfony with Composer (see requirements details).
- Symfony follows the semantic versioning strictly, publishes "Long Term Support" (LTS) versions and has a release process that is predictable and business-friendly.
Documentation
- Read the Getting Started guide if you are new to Symfony.
- Try the Symfony Demo application to learn Symfony in practice.
- Discover Symfony ecosystem in detail with Symfony The Fast Track.
- Master Symfony with the Guides and Tutorials, the Components docs and the Best Practices reference.
Community
- Join the Symfony Community and meet other members at the Symfony events.
- Get Symfony support on Stack Overflow, Slack, IRC, etc.
- Follow us on GitHub, Twitter and Facebook.
- Read our Code of Conduct and meet the CARE Team.
Contributing
Symfony is an Open Source, community-driven project with thousands of contributors. Join them contributing code or contributing documentation.
Security Issues
If you discover a security vulnerability within Symfony, please follow our disclosure procedure.
About Us
Symfony development is sponsored by SensioLabs, led by the Symfony Core Team and supported by Symfony contributors.