Skip to content

[DI][DX] debug:container command should sort tagged services by priority #32439

Closed
@teohhanhui

Description

@teohhanhui

Description
The debug:container command should sort tagged services by their priority, similar to https://github.com/symfony/symfony/blob/v4.3.2/src/Symfony/Component/DependencyInjection/Compiler/PriorityTaggedServiceTrait.php

Example

Unsorted output is bad for DX as it doesn't reflect reality:

$ bin/console debug:container --tag=serializer.normalizer

Symfony Container Services Tagged with "serializer.normalizer" Tag
==================================================================

----------------------------------------------------------- ---------- ----------------------------------------------------------------------------------------------------- 
Service ID                                                  priority   Class name                                                                                           
----------------------------------------------------------- ---------- ----------------------------------------------------------------------------------------------------- 
api_platform.graphql.normalizer.item                        -890       ApiPlatform\Core\GraphQl\Serializer\ItemNormalizer                                                   
api_platform.graphql.normalizer.object                      -995       ApiPlatform\Core\GraphQl\Serializer\ObjectNormalizer                                                 
api_platform.hal.normalizer.collection                      -985       ApiPlatform\Core\Hal\Serializer\CollectionNormalizer                                                 
api_platform.hal.normalizer.entrypoint                      -800       ApiPlatform\Core\Hal\Serializer\EntrypointNormalizer                                                 
api_platform.hal.normalizer.item                            -890       ApiPlatform\Core\Hal\Serializer\ItemNormalizer                                                       
api_platform.hal.normalizer.object                          -995       ApiPlatform\Core\Hal\Serializer\ObjectNormalizer                                                     
api_platform.hydra.normalizer.collection_filters            -985       ApiPlatform\Core\Hydra\Serializer\CollectionFiltersNormalizer                                        
api_platform.hydra.normalizer.constraint_violation_list     -780       ApiPlatform\Core\Hydra\Serializer\ConstraintViolationListNormalizer                                  
api_platform.hydra.normalizer.documentation                 -800       ApiPlatform\Core\Hydra\Serializer\DocumentationNormalizer                                            
api_platform.hydra.normalizer.entrypoint                    -800       ApiPlatform\Core\Hydra\Serializer\EntrypointNormalizer                                               
api_platform.hydra.normalizer.error                         -800       ApiPlatform\Core\Hydra\Serializer\ErrorNormalizer                                                    
api_platform.jsonapi.normalizer.collection                  -985       ApiPlatform\Core\JsonApi\Serializer\CollectionNormalizer                                             
api_platform.jsonapi.normalizer.constraint_violation_list   -780       ApiPlatform\Core\JsonApi\Serializer\ConstraintViolationListNormalizer                                
api_platform.jsonapi.normalizer.entrypoint                  -800       ApiPlatform\Core\JsonApi\Serializer\EntrypointNormalizer                                             
api_platform.jsonapi.normalizer.error                       -790       ApiPlatform\Core\JsonApi\Serializer\ErrorNormalizer                                                  
api_platform.jsonapi.normalizer.item                        -890       ApiPlatform\Core\JsonApi\Serializer\ItemNormalizer                                                   
api_platform.jsonapi.normalizer.object                      -995       ApiPlatform\Core\JsonApi\Serializer\ObjectNormalizer                                                 
api_platform.jsonld.normalizer.item                         -890       ApiPlatform\Core\JsonLd\Serializer\ItemNormalizer                                                    
api_platform.jsonld.normalizer.object                       -995       ApiPlatform\Core\JsonLd\Serializer\ObjectNormalizer                                                  
api_platform.problem.normalizer.constraint_violation_list   -780       ApiPlatform\Core\Problem\Serializer\ConstraintViolationListNormalizer                                
api_platform.problem.normalizer.error                       -810       ApiPlatform\Core\Problem\Serializer\ErrorNormalizer                                                  
api_platform.serializer.normalizer.item                     -895       ApiPlatform\Core\Serializer\ItemNormalizer                                                           
api_platform.swagger.normalizer.api_gateway                 -780       ApiPlatform\Core\Swagger\Serializer\ApiGatewayNormalizer                                             
serializer.denormalizer.array                               -990       Symfony\Component\Serializer\Normalizer\ArrayDenormalizer                                            
serializer.normalizer.constraint_violation_list             -915       Symfony\Component\Serializer\Normalizer\ConstraintViolationListNormalizer                            
serializer.normalizer.data_uri                              -920       Symfony\Component\Serializer\Normalizer\DataUriNormalizer                                            
serializer.normalizer.dateinterval                          -915       Symfony\Component\Serializer\Normalizer\DateIntervalNormalizer                                       
serializer.normalizer.datetime                              -910       Symfony\Component\Serializer\Normalizer\DateTimeNormalizer                                           
serializer.normalizer.json_serializable                     -900       Symfony\Component\Serializer\Normalizer\JsonSerializableNormalizer                                   
serializer.normalizer.object                                -1000      Symfony\Component\Serializer\Normalizer\ObjectNormalizer                                             
----------------------------------------------------------- ---------- ----------------------------------------------------------------------------------------------------- 

Metadata

Metadata

Assignees

No one assigned

    Labels

    DXDX = Developer eXperience (anything that improves the experience of using Symfony)DependencyInjection

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions