Skip to content

[DoctrineBridge] Allow to use DoctrinePingConnectionMiddleware without ORM #38988

Open
@rey0bs

Description

@rey0bs

Symfony version(s) affected: 5.x

Description
doctrine-bridge declares some Messenger middlewares (i.e \Symfony\Bridge\Doctrine\Messenger\AbstractDoctrineMiddleware), using ManagerRegistry and Entity Managers.
This feature requires doctrine/orm to work, but doctrine/orm is declared as a dev dependency in doctrine-bridge composer.json file.

How to reproduce

  1. Create a Symfony application without doctrine/orm dependency (doctrine/dbal only)
  2. Add the messenger component and configure a bus (i.e with rabbit MQ)
  3. Declare a messenger middleware on this bus :
framework:
    messenger:
        buses:
            messenger.bus.my_bus:
                middleware:
                    - doctrine_ping_connection
  1. Run consumer in prod environment.
  2. Dispatch a message in bus

It will output this error : Doctrine ORM Manager named "" does not exist.

Possible Solution
Only use DBAL in messenger middlewares, or declare doctrine/orm as non-dev dependency in composer.json doctrine-bridge file.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions